私のリファレンスブックでコードを読んでいるときに、感嘆符と整数に関する問題に遭遇しました。
Numberという名前の整変数を宣言したとしましょう-int number = 0;
次に、感嘆符とnumber
を含むwhile関数を使用します
while(!number)
{
...
}
私はこれが何であるかわからないので混乱しています!number
意味し、返される可能性のある結果は何ですか?これが使えるかどうかはわかりませんが、先ほど書いたように本で見ました。
したがって、誰かが私に教えてくれれば素晴らしいです_!number
意味とそれは何を評価しますか?
前もって感謝します。
!
ではない。したがって、数値がゼロ以外(正または負)の場合、ゼロを返します。ゼロの場合は1を返します。
int i = 13;
printf("i = %d, !i = %d\n", i, !i);
printf("!0 = %d\n", !(0));
Cでは、!numberは、number == 0の場合は1に評価され、number!= 0の場合は0に評価されます。Cでは、1はtrue、0はfalseです。
Number == 0のような明示的な比較を使用しても同じ効果がありますが、読みやすくなる場合があります。
これは否定または「否定」演算子です。実際には、!numberは「number == 0の場合はtrue、それ以外の場合はfalse」を意味します。詳細については、Googleの「単項演算子」をご覧ください。
否定演算子(!)は、単にそのオペランドの意味を逆にするだけです。
オペランドまたは式は、算術型またはポインター型でなければなりません。ただし、式のオペランド/結果は暗黙的にデータ型boolに変換されます(ブール値0はfalse、非ゼロはTrueを意味します)。
変換されたオペランドがfalseの場合、結果はtrueです。変換されたオペランドがtrueの場合、結果はfalseです。結果はbool型です。
そう
while(!number)
{
...
}
変数numberは0であるので、while(!number)、つまり!0は「0の否定」であり、「TRUE」であり、コードはwhile loop()に入ります。
数値の否定に使用されます。単項演算子です。
例えば:-
ゼロで使用している場合:-!0の場合は1になります。
1つの!1 = 0