| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1467 人关注过本帖
标题:关于“自增、自减”的疑问!
只看楼主 加入收藏
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
眼不见  心不烦

我就是真命天子,顺我者生,逆我者死!
2009-09-15 18:23
qq8080
Rank: 1
来 自:成都
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-9-15
收藏
得分:0 
谢谢分享!

www.成都网站建设、网页设计、网站推广
2009-09-15 19:11
snr108
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:39
专家分:60
注 册:2009-9-14
收藏
得分:0 
我倒...这个东东有点烦...按教程上来说P应该是6+7+8=21才对..但是环境不同答案却不一样..VC是22,估计是在最后还自增了一下..而tc里24..估计就和4楼说的是自增完了再把值赋予到j本身再赋予给q...
很头痛....
2009-09-16 10:28
地狱无明火
Rank: 2
等 级:论坛游民
帖 子:62
专家分:71
注 册:2009-6-11
收藏
得分:0 
我用VC的输出是24.

printf("%d\n", ++j);
结果是6;

printf("%d\n", ++j + ++j);
结果是14;
因为++j - ++j = 0,
实际运算过程是7 + 7 = 14;


printf("%d\n", ++j + ++j + ++j);
结果是24。
因为++j - ++j - ++j = -8,
实际运算过程是8 + 8 + 8 = 24;






2009-09-16 11:43
暗夜无语
Rank: 2
等 级:论坛游民
帖 子:16
专家分:33
注 册:2009-9-15
收藏
得分:0 
我也赞成编译系统的不同 造成了差值。
2009-09-16 14:20
帅超
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-9-12
收藏
得分:0 
4楼的完全正确,,支持4楼;
前置运算:++i,--i.  使用i置前,先使i值+1或-1.
后置运算:i++,--i.  使用i置后,使i值+1或-1.
需要慢慢体会啊!
2009-09-16 15:22
宽的偶
Rank: 2
等 级:论坛游民
帖 子:32
专家分:16
注 册:2009-8-25
收藏
得分:0 
刚刚也差点计算错了
   其实,这运算是自右边开始的。
  你首先要明白的是, ++i是先进行自加在运算,而i++是运算后实现自加的
    所以,main(){
  int i=5,j=5,p,q;
  p=(i++)+(i++)+(i++);
  q=(++j)+(++j)+(++j);
  printf("%d,%d,%d,%d",p,q,i,j);
}
   
   运行过程应该是:
    p=5+5+5,然后等运算完后i自加三次,变成了8
    q=6+7+8,这是运算前的自加,等下,还没完,在进行自加的时候,你可别忽略了,i每自加一次,前面的i也就发生了变化。
    也就是说当  p=(++j)+(++j)+(++j)的最后一个的    ++j的时候,前面的j的值,已经由于后面(第三步)的自加运算,而变成了8。
    所以最后得到 p=8+8+8   也就是上面4楼所说的24.
     最后i和j都变成了8
 输出的整形量为:15,24,8,8
2009-09-16 22:28
Kabie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
收藏
得分:0 
....永远不要写出这种含义不清的表达式……

不管你是从哪儿本书上看到的解答……赶快把这书扔了吧……
2009-09-16 22:47
qhmzq
Rank: 1
等 级:新手上路
帖 子:21
专家分:6
注 册:2009-9-27
收藏
得分:0 
见鬼了  在我这VC 6.0上不可以运行,说出错了! 我是直接复制你那程序的 ,真的见鬼了!
2009-09-28 15:16
lovevista
Rank: 2
来 自:四川成都市
等 级:论坛游民
帖 子:41
专家分:13
注 册:2009-9-24
收藏
得分:0 
8楼的· ·  
++运算时自右向左哈
但是好像和这道题没什么关系哦
 
我是这么理解的哈
2009-09-28 15:43
快速回复:关于“自增、自减”的疑问!
数据加载中...
 
   



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

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