在将逻辑运算符应用于其结果之前,复合逻辑AND/OR表达式中的各个表达式不应该首先被求值吗?为什么在以下程序++k
的条件中保持不变:m = ++i && ++j || ++k
#include<stdio.h>
int main()
{
int i=-3, j=2, k=0, m;
m = ++i && ++j || ++k;
printf("%d, %d, %d, %d\n", i, j, k, m);
return 0;
}
输出: -2,3,0,1
但我期望输出-2,3,1,1