| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1467 人关注过本帖
标题:关于“自增、自减”的疑问!
只看楼主 加入收藏
缺钱缺钙还欠扁
Rank: 2
等 级:论坛游民
帖 子:12
专家分:19
注 册:2009-7-24
收藏
 问题点数:0 回复次数:21 
关于“自增、自减”的疑问!
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=15,q=24,i=8,j=8,  可是我用VC运行得结果是q=22(其他一样)

请问上面这段代码具体是如何执行的?还有为啥Vc中q=22?
搜索更多相关主题的帖子: 疑问 自增、自减 
2009-09-15 07:37
缺钱缺钙还欠扁
Rank: 2
等 级:论坛游民
帖 子:12
专家分:19
注 册:2009-7-24
收藏
得分:0 
555!怎么没人理我啊!
2009-09-15 08:37
黒渍
Rank: 2
等 级:论坛游民
帖 子:57
专家分:41
注 册:2009-7-16
收藏
得分:0 
我在VS2008中运行的结果也是24……

踏实学C
/*我的编程飞信群:9401431 互相学习,共同进步*/
2009-09-15 09:24
rebornxldeng
Rank: 1
等 级:新手上路
帖 子:22
专家分:1
注 册:2009-8-27
收藏
得分:0 
p的计算步骤:
p = i+i+i;
i = i + 1;
i = i + 1;
i = i + 1;
这样算下来是 p = 15 i = 8;
q的计算步骤是
i = i + 1;
i = i + 1;
i = i + 1;
q = i+i+i;
这样算下来就是 q = 24 j = 8
楼主好好体会一下吧.
Vc中对于自增自减运算的步骤,我不是太清楚.自增运算中尽量少用++i这样的指令好了.
我学C语言的时间也不长,编程经验有限.呵呵.
2009-09-15 10:35
缺钱缺钙还欠扁
Rank: 2
等 级:论坛游民
帖 子:12
专家分:19
注 册:2009-7-24
收藏
得分:0 
回3楼:我的是VC6中是22
会4楼:多谢解答!q的计算步骤狠是有点难以理解啊
2009-09-15 14:25
LEED
Rank: 2
等 级:论坛游民
帖 子:75
专家分:43
注 册:2009-8-26
收藏
得分:0 
回复 楼主 缺钱缺钙还欠扁
由于编译的系统不一样。。结果可能不一样。。
在TC和MSC中把5作为表达式所有i的值。。++j..j本生自加三次变为8 所以结果为24.
而i++先运算后自加。。所以为15.。后来i的值为8.
而有的系统按照自左向右顺序求解括号的运算。。那我觉得这是P为18,q为21.。我知道这是错的。。
我也不知道为什么会这样
我也是一菜鸟。。刚自学完谭书的前三章。。望高手指点下。。
2009-09-15 15:16
自学
Rank: 2
等 级:论坛游民
帖 子:17
专家分:31
注 册:2009-9-14
收藏
得分:0 
我的结果和6楼一样,恩恩,求高人解答,运算不是从左向右结合吗
2009-09-15 15:25
布魯斯老爺
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2009-8-28
收藏
得分:0 
++的结合方向是自右向左的吧
2009-09-15 15:43
LEED
Rank: 2
等 级:论坛游民
帖 子:75
专家分:43
注 册:2009-8-26
收藏
得分:0 
8楼说的没错。。我想我没说清楚。。我指的是括号。。整个表达式。。
2009-09-15 15:45
vcx
Rank: 2
等 级:论坛游民
帖 子:61
专家分:81
注 册:2009-9-15
收藏
得分:0 
我觉得四楼写的不错
2009-09-15 16:09
快速回复:关于“自增、自减”的疑问!
数据加载中...
 
   



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

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