我在阅读参考书中的代码时遇到了涉及感叹号和整数的问题。
我们假设我已经声明了一个名为number的整数变量 - int number = 0;
然后我使用涉及感叹号和number
while(!number)
{
...
}
我对此感到困惑,因为我不知道!number
的含义是什么以及可能返回的结果是什么?我不确定这是否可以使用,但正如我所说,我在书中看到了它。
因此,如果有人能告诉我 !number
的意思是什么以及评估的内容会很棒?
提前谢谢。
答案 0 :(得分:8)
我们可以将!
视为不。
因此,如果number为非零(+ ve或-Ve),则返回Zero。
如果为零,则返回1.
int i = 13;
printf("i = %d, !i = %d\n", i, !i);
printf("!0 = %d\n", !(0));
答案 1 :(得分:5)
在C中,如果数字== 0,则数字将评估为1;如果数字,则评估为0!= 0.在C中,1为真,0为假。
使用数字== 0等显式比较具有相同的效果,但您可能会发现它更容易阅读。
答案 2 :(得分:4)
这是一种否定或"不是"运营商。在实践中!数字表示"如果数字== 0则为true,否则为false。"谷歌"一元运营商"了解更多。
答案 3 :(得分:1)
它用于数字的否定。它是一元运算符。
例如: -
如果我们使用零: - !0那么它将变为1
一个!1 = 0
答案 4 :(得分:0)
否定运算符(!)只是颠倒了其操作数的含义。
操作数或表达式必须是算术或指针类型。但是表达式的操作数/结果被隐式转换为数据类型bool(布尔值0表示false,非零表示True)。
如果转换后的操作数为false,则结果为true;如果转换的操作数为true,则结果为false。结果是bool类型。
所以
while(!number)
{
...
}
因为变量数是0,而(!数字)即,0是0的“0”否定。这是' TRUE'然后代码进入while循环()