使用感叹号'!' 在C.

Pau*_*lch 11 c int punctuation

我在阅读参考书中的代码时遇到了涉及感叹号和整数的问题.

让我们说我已经声明了一个名为number的整数变量 - int number = 0;

然后我使用涉及感叹号的while函数 number

while(!number)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我对此感到困惑,因为我不知道什么!number意思,什么可能返回结果?我不确定这是否可以使用,但正如我所说,我在书中看到了它.

因此,如果有人能告诉我它的!number意义是什么以及它的评价是什么呢?

先感谢您.

gan*_*ars 11

我们可以不对待!.因此,如果number为非零(+ ve或-Ve),则返回Zero.如果为零,则返回1.

int i = 13;
printf("i = %d, !i = %d\n", i, !i);
printf("!0 = %d\n", !(0));
Run Code Online (Sandbox Code Playgroud)


The*_*ube 6

在C中,如果数字== 0,则数字将评估为1,如果数字= 0,则数字将评估为0.在C中,1表示为真,0表示为假.

使用数字== 0等显式比较具有相同的效果,但您可能会发现它更容易阅读.

  • "更容易阅读",我不同意.只有当你几乎什么都不知道C. (3认同)

Rob*_*obP 5

这是一个否定或“非”运算符。实际上 !number 的意思是“如果 number == 0 则为真,否则为假。” 谷歌“一元运算符”以了解更多信息。