我执行了以下代码:
int a[] = {5,1,15,20,25};
int i,j,m;
i = ++a[1];
j = a[1]++;
m = a[i++];
printf("%d %d %d",i,j,m);
我得到如下输出:-
3 2 15
我不明白的部分是我如何将 i
的值设为 3
应该是2吧?
或者它是否与 C 编译器对 printf()
语句的从右到左求值有关?
最佳答案
m = a[i++]
行第二次将 i
从 2 增加到 3。
关于c - 以下代码输出背后的逻辑是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344898/