那么对于两个单独的代码片段,为什么增量器/减量器的行为不同?
片段 A:
i=7; j=8; k=9;
printf("%d\n", i - 7 && j++ > k);
printf("%d %d %d", i, j, k);
将产生以下输出:
0
7 8 9
片段 B:
while (i > 0)
printf("T minus %d and counting\n",i--);
产生这个:
T minus 5 and counting
T minus 4 and counting
T minus 3 and counting
T minus 2 and counting
T minus 1 and counting
现在,我知道函数的参数是按值传递的,并且它必须与j
布尔表达式中使用的事实有关。但这两种情况在我看来是矛盾的。这里发生了什么?