我正在开发一个简单的C程序,但是遇到了一些混乱。下面是代码:
int main(void)
{
int i, j, k;
i = 3;
j = 4;
k = 5;
printf("%d ", i < j || ++j < k); printf("\n"); // LINE 1
printf("%d %d %d", i, j, k); // LINE 2
return 0;
}
在上面的程序中,变量j开始为4。然后在第1行的printf语句中,我们将j的值增加1(++ j = 5)。
因此,从理论上讲,我假设当j在printf(第2行)中打印时,它打印为5,因为我们在第1行中对j进行了递增。但是,每次我运行代码时,第2行都会打印j的原始值,即4,而不是5。
我缺少什么吗?
感谢任何帮助!
谢谢。
j
永远不会增加,因为++j
从未被求值。首次检查i < j
时,OR运算符会满足。