This question already has answers here:
Logical Operators in C
(8个答案)
7年前关闭。
我只是在学习C,并且遇到了这段代码。老实说,我不知道w,x,y和z被分配了什么。显然,输出如下:
“w”如何等于1?我不明白。
(8个答案)
7年前关闭。
main( ) {
int i = 4, j = -1, k = 0, w, x, y, z ;
w = i || j || k ;
x = i && j && k ;
y = i || j && k ;
z = i && j || k ;
printf ( "\nw = %d x = %d y = %d z = %d", w, x, y, z ) ;
}
我只是在学习C,并且遇到了这段代码。老实说,我不知道w,x,y和z被分配了什么。显然,输出如下:
w = 1 x = 0 y = 1 z = 1
“w”如何等于1?我不明白。
最佳答案
||
是逻辑OR运算符。来自C11 s6.5.14逻辑或运算符
将其应用于w
的计算中,我们得到
w = i || j || k == (i || j) || k
== (non-zero || non-zero) || 0
== 1 || 0
== 1
x
,y
和z
的计算相似。 C11 s6.5.13.3声明&&
运算符的结果应为0或1。09-13 09:57