为什么会是这样呀?一个结果是1,一个结果是2?

[复制链接]
查看11 | 回复3 | 2012-6-28 19:51:55 | 显示全部楼层 |阅读模式
第一个结果好像是0 (上机试过了)因为++出现在i的后面,就表示先执行当前语句,后让i自加1printf( "%d",i++);就是先输出i(这时候i还是0,还没执行i++操作)第二个结果是1因为i++单独是一个句子不存在考虑++在i之前还是之后的问题就是i自加1从0变为1如果答案却是是一个是1一个是2 你看看有没有抄错题如果那样的话 i的初始值应该是1而不是0...
回复

使用道具 举报

千问 | 2012-6-28 19:51:55 | 显示全部楼层
纠正一下,你这个输出的值应该是前面是0,后面那个是1吧。这个主要涉及的是自增的是在前还是在后的问题,如你上面的i++,当++在i的前面的时候表示的是在执行下一条语句之前就给自己增加一个1,如果++在i的后面则是在在执行当前语句之后再执行自增1的操作,下面我具体的给你分析一下#includevoid main(){ int i=0...
回复

使用道具 举报

千问 | 2012-6-28 19:51:55 | 显示全部楼层
++i 的意思是“在使用 i 之前,先使 i 的值加1; i++的意思是”在使用 i 之后,使i得值加1“; 粗略的看,++i和 i++ 的作用相当于 i=i+1 .但 ++i和i++ 的不同之处在于 ++i是先执行i=i+1 后,再使用i的值;而 i++ 是先使用 i 的值后,再执行i=i+1. 但是,你已经赋初...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行