首页 > 编程知识 正文

c语言中自增自减运算符,c语言自增自减运算符例题

时间:2023-05-06 10:55:44 阅读:232472 作者:4816

源程序 int main(){ int i = 0; printf("%d,%d,%dn",i++,--i,i++); return 0;}

我们预期的结果应该是:0,0,0

但实际结果为:0,1,0

原理我也弄得不是很明白,我借鉴了几篇文章,理解到了计算的方法。

大家都知道printf里面的计算是从右至左的,输出是从左至右。先运算这些i++,--i,i++等之类的计算。

我现在来讲讲刚才那个计算吧,第一步,i++(运算符号在变量后面的,就是输出计算时变量的值,这里输出i,所以输出0。),计算过后i=1。第二步,--i(运算符号在变量前面的,在这里输出i的最终值,即执行完printf里面所有运算后的变量值)。计算过后i=0,第三步,i++,同理第一步。计算过后i=1;所以输出的值为 0,1,0。

简单来说,先算后用的,输出最终的变量值。先用后算的,输出当时的变量值。

验证代码

通过以上的方法计算,得出的结果和运算结果一致。

#include<stdio.h> int main(){int i;// EX1i = 1;printf("%d %d %d %d %d %dn",i,i++,i,--i,++i,i);fflush(stdout);printf("%dn",i);fflush(stdout);//EX2i = 1;printf("%d %d %d %d %d %d %dn",i,i++,i++,i,--i,++i,i);fflush(stdout);printf("%dn",i);fflush(stdout);//EX3i = 1;printf("%d %d %d %d %d %dn",i,i--,i,--i,++i,i);fflush(stdout);printf("%dn",i); return 0;}

运行结果

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。