int i=-1,j=-1,k=0,l=2,m;
m=l++||i++ && j++ && k++;
printf("%d %d %d %d %d",i,j,k,l,m);
代码的输出是:-1 -1 0 3 -1
我的问题是为什么i++
j++
和k++
即使 &&
也不会被评估比 ||
具有更高的优先级?
最佳答案
本质上发生的事情是,当 l++=3 不为 0 时,它的计算结果为 True(只有 0 才是 False)。因此,|| 之后表达式的第二部分未进行评估。
关于c - 以下 C 代码的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656002/