#include<stdio.h>
int main()
{
int i=0, k=0, m;
m = ++i || ++k;
printf("%d, %d, %d\n", i, k, m);
return 0;
}
返回
1,0,1
为什么k = 0而不是1? || -operator对++ k的影响是什么? 谢谢!
答案 0 :(得分:2)
在||
OR中,如果第一个条件为真,则不会检查第二个条件。(它将跳过第二个条件)。
作为
m = ++i || ++k;
在++i
之后的这种情况下,i
的值将变为1
,因为第一个条件是true
,因此它将跳过第二个条件。因此不会执行操作++k
因此k
将保持0
。
与使用&&
相同,第一个条件为false
,它将跳过第二个条件。结果将是0
(false)。