C语言,为什么下面两图中输出++i的结果不一样?

如题所述

#include<stdio.h>
int main(){
int i=1;
printf("%d \n",++i);
printf("%d \n",--i);
return 0;
}

这个是你想象中的第二个运行结果吧,我们看到,如果,++i与--i,一起执行的话,输出的结果为1、0,这说明,此时运算中的i的值为0,哎,我也没搞懂,关注此题。。。

我刚刚百度了一下,发现,printf的输出是从右往左的,所以先执行--i,输出的--i自然是0了,然后i的值变为0,在执行++i,输出1。懂了吗。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-20
这个跟编译器有关。
你用的编译器在处理printf的参数时,是从右往左的顺序。
先计算--i,i变成0,在计算++i,i变成1,所以下面一个输出结果就是1,0
第2个回答  2015-07-20
这个结果是依赖编译器的

同一个表达式中,对变量做++,-- 都不能正确预期它的执行顺序。
相似回答