为了账号安全,请及时绑定邮箱和手机立即绑定

自增自减是怎么算的?

比如:

int i=0;

printf("%d\n",i++);

printf("%d\n",++i);

运行之后是0,2。为什么不都是1呢?

里面说a++和++a都等于a=a+1,是不是说错了?

正在回答

3 回答

i++是先取得i的值,然后再让i=i+1;而++i,则是先有i=i+1,然后再取i的值。这个地方的第一个printf里的i++,因为先取i的值所以是0,但这一步之后i=i+1=0+1=1,然后第二个printf里的++i是先算i=i+1=1+1=2,然后再输出i=2 。

1 回复 有任何疑惑可以回复我~
#1

慕粉小金 提问者

非常感谢!
2016-07-30 回复 有任何疑惑可以回复我~

第一个"i++"是取i=0,然后直接输出为0,再进行i=i+1的计算,即第二个printf之前i=1,第二个“++i”是先进行i=i+1,计算的值是2,输出。所以运行的结果是0,2。

“i++”是先取值在计算;“++i”是先计算在取值。

0 回复 有任何疑惑可以回复我~

1、i++:先取值,再执行+1;因i原始值为0,所以此处输出0;(但执行完i++之后,i=1)

2、++i:先执行+1,再取值;在上一步的基础上+1,所以此处输出2。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926018    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

自增自减是怎么算的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信