私はこのC++プログラムを書いていますが、第3のcout
の文でなぜ1
が印刷されているのか理解できません。bool = trueのときに補数演算子が機能しないのはなぜですか?
#include<iostream>
using namespace std;
int main()
{
bool b = false;
cout << b << "\n"; // Print 0
b = ~b;
cout << b << "\n"; // Print 1
b = ~b;
cout << b << "\n"; // Print 1 **Why?**
return 0;
}
出力:
b = !b;
論理否定である:それは
0
1
0
なぜ誰かが投票に同意したのか分かりません。 – vikiiii
+1 @vikiiii - 残念ながら、downvotingとクローズアップの議決は、スタックエクスチェンジの弱点です。匿名のやり方で起こるからです。 – Sabuncu
あなたは基本的に間違った演算子を使い、なぜあなたが期待したものではないのだろうかと疑問に思っていますか? – szx