| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1234 人关注过本帖
标题:关于i++与++i的问题
只看楼主 加入收藏
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
不要研究这种有歧义的问题
2011-09-09 14:39
shi625628276
Rank: 1
等 级:新手上路
帖 子:26
专家分:9
注 册:2011-9-2
收藏
得分:0 
回复 10楼 QQ785468931
是的但是你看看i++是把8送进去,然后输出的是8但是他变成9了。在++i里是9+1然后再赋值不是10么?
2011-09-09 14:46
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:1 
从右向左算
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n",++i,--i,i--,i++,-i--);
-i-- 取-8;此处i并没有减1;
i++ 取8;此处i也没有进行加1运算
i-- 同样是8
做完上面三步i的值始终是8没有变。
--i;这里得先减1,再取7;
++i;先加1再取8;
printf输出   8,7,8,8,-8
再做第一步没有做完的i--;
然后是第二步的i++;
然后第三步的i--;
最后i的值为7



[ 本帖最后由 czsbc 于 2011-9-9 14:52 编辑 ]
收到的鲜花
  • fense03212011-09-10 11:56 送鲜花  3朵   附言:好文章
2011-09-09 14:48
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
其它的也一样可以这么分析。
2011-09-09 14:49
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
无意义,不以评论!

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-09 15:12
劣质数轴
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:163
注 册:2010-11-19
收藏
得分:0 
这个依懒于编译器的实现!

这种帖算是年经帖之一了……

这个操作本身是歧义,你用VC,  TC,code::blocks分别测试这段代码,你就会发现不同结果。
2011-09-10 00:56
星辰雁
Rank: 4
等 级:业余侠客
威 望:1
帖 子:93
专家分:275
注 册:2011-9-10
收藏
得分:0 
++i与i++的区别是:
++i是先自增,后赋值;
而i++是先赋值,后自增。

不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
2011-09-10 09:44
墨香555
Rank: 2
等 级:论坛游民
帖 子:115
专家分:31
注 册:2010-10-21
收藏
得分:0 
c/c++交流群 90483827帮你解决问题
2011-09-10 09:49
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:1 
++n: int fun(int *p)
     {*p += 1;return *p}
n++: int fun(int *p)
     {int temp = *p;*p += 1;return temp;}

                                         
===========深入<----------------->浅出============
2011-09-10 11:08
xiaxiayige
Rank: 1
等 级:新手上路
帖 子:16
专家分:7
注 册:2011-9-8
收藏
得分:1 
++i  是先加   比如  i=8    a=++i    a的结果为  9    i的结果为9             如果是   a=i++     a的结果为  8    i的结果为   9     总之++i和   i++  他们都要自增1      
2011-09-10 11:18
快速回复:关于i++与++i的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034001 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved