C-增量未更新变量值

问题描述 投票:0回答:1

我正在开发一个简单的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。

我缺少什么吗?

感谢任何帮助!

谢谢。

c pre-increment
1个回答
0
投票

j永远不会增加,因为++j从未被求值。首次检查i < j时,OR运算符会满足。

© www.soinside.com 2019 - 2024. All rights reserved.