这些操作符在C中做什么
我是C语言的新手,我正在浏览一些示例代码,我不确定if语句中的这些运算符是“询问”什么,也就是说 代码如下:这些操作符在C中做什么,c,operators,C,Operators,我是C语言的新手,我正在浏览一些示例代码,我不确定if语句中的这些运算符是“询问”什么,也就是说 代码如下: int main(void){ int a = 99; int b = 0; int c = 74; if( a || b ) printf("first\n"); else printf("second\n"); if( a && c ) printf("third\n");
int main(void){
int a = 99;
int b = 0;
int c = 74;
if( a || b )
printf("first\n");
else
printf("second\n");
if( a && c )
printf("third\n");
else
printf("fourth\n");
if( !a )
printf("fifth\n");
else
printf("sixth\n");
if( (a && b) || c )
printf("seventh\n");
else
printf("eighth\n");
if( !c || !b )
printf("nineth\n");
else
printf("tenth\n");
}
我知道操作符的意思,我只是不明白当他们通过“如果”语句时发生了什么。有人能给我解释一下吗?回答这个问题的关键是实现C如何处理参与逻辑运算的整数:
- 零被视为
FALSE
- 除零以外的所有值均被视为
TRUE
!FALSE -> TRUE
!TRUE -> FALSE
FALSE || FALSE -> FALSE
FALSE || TRUE -> TRUE
TRUE || FALSE -> TRUE
TRUE || TRUE -> TRUE
FALSE && FALSE -> FALSE
FALSE && TRUE -> FALSE
TRUE && FALSE -> FALSE
TRUE && TRUE -> TRUE
当一个表达式中使用多个运算符而不带括号时,一元代码>应用在二进制文件&&
或| |
之前
现在您有了足够的信息,可以自己计算输出。它们只是普通的运算符:
|| = or
&& = and
! = not
所以
他说
if a or b then print "first"
而且
if ( !a )
是
相当于:
if a is equal to 0 or NULL
非常基本的东西 如果使用bool类型的变量,可能更容易了解布尔运算符。我发现布尔检查在处理整数时不太有用,因为将数字视为真或假的情况不太常见。对于int,你通常认为它们的数值在布尔逻辑中意义不大,如果你知道运算符的含义,那么你知道它们有一个真值,对吧?而if
语句将检查真值,如果真值为真,则执行以下语句或块。(注意:C中的数字如果不为零,则真值为“真”,如果为零,则真值为“假”)。这些是布尔运算符。我建议编写一个小应用程序来处理不同的表达式和不同的输入值。这个问题似乎离题了,因为OP没有做任何基本的研究。如果你不知道他们在做什么,你不知道他们的意思…@mbrach它的意思是“或”,我现在明白了。谢谢。我怎么知道它们是真是假呢?请看答案顶部的两个要点:-)在我重读你的答案后,我正要编辑我的评论。非常感谢。这就是我要问的!:D
if not a
if a is equal to 0 or NULL