| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1433 人关注过本帖
标题:求助:关于C语言中自增的一个问题
只看楼主 加入收藏
aoaoaoao
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-5-14
收藏
得分:0 
b=(++a)+(++a)+(++a);

过程
1: 先算((++a)+(++a)) 后算 +(++a)
2: ((++a)+(++a))这个表达式结果为12, 因为a自增2次 所以两个a都是6,同时影响最后1个a变成6
3: 12+ (++a) 这个时候a为6,再自增一次变为7, 12+(++a) =12+7=19 .......

2007-10-23 23:53
gahddd
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-9-19
收藏
得分:0 
嗯,我昨天晚上又想了想,觉得也是这样的,谢谢各位。

俺从乡下来,俺啥也不懂。
2007-10-24 08:07
pish
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-10-6
收藏
得分:0 

觉得18和21都好理解,但就是想不明白为什么会是19


2007-10-24 12:10
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
收藏
得分:0 

学习了,

[此贴子已经被作者于2007-10-24 13:32:40编辑过]

2007-10-24 13:30
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
收藏
得分:0 
以下是引用pish在2007-10-24 12:10:11的发言:

觉得18和21都好理解,但就是想不明白为什么会是19

18是怎么理解的,19很好理解啊
看11楼啊,写的很详细了
编译器不一样造成的吧

[此贴子已经被作者于2007-10-24 16:20:45编辑过]


女朋友问我想怎么死~~~
             我说我想"爽死"
2007-10-24 16:18
hczsea
Rank: 2
等 级:论坛游民
帖 子:129
专家分:68
注 册:2007-10-23
收藏
得分:0 


依次执行,18:一次++a; a=5,二次++a; a=6,三次++a; a=7, 5+6+7 = 18
先执行第一次加,19::一次++a; a=5,二次++a; a=6,(++a)+(++a)=6+6=12,三次++a; a=7 12+7 = 19
最后执行加法,21: 一次++a; a=5,二次++a; a=6,三次++a; a=7, 7+7+7=21

那到底是根据什么来确定执行步骤呢

2007-10-24 17:01
hczsea
Rank: 2
等 级:论坛游民
帖 子:129
专家分:68
注 册:2007-10-23
收藏
得分:0 

从左向右执行:由于++优先级比+高,所以执行第一个加法时,a经过两次自加,a=6,所以得到12,再自加一次变为7,则结果为12+7=19。

从右向左执行:由于++优先级比+高,经过3次自加,a=7,两个加法7+7+7=21。
晕了
2007-10-24 17:09
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
收藏
得分:0 
以下是引用hczsea在2007-10-24 17:01:42的发言:


依次执行,18:一次++a; a=5,二次++a; a=6,三次++a; a=7, 5+6+7 = 18 //有你这样的编译器么?


先执行第一次加,19::一次++a; a=5,二次++a; a=6,(++a)+(++a)=6+6=12,三次++a; a=7 12+7 = 19
最后执行加法,21: 一次++a; a=5,二次++a; a=6,三次++a; a=7, 7+7+7=21

那到底是根据什么来确定执行步骤呢


女朋友问我想怎么死~~~
             我说我想"爽死"
2007-10-24 17:27
syab11
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-7-21
收藏
得分:0 

学习了


2007-10-24 20:36
下雨浇花
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2007-9-19
收藏
得分:0 
看到都怕怕了,

花不浇,长不大;雨不下,不浇花...
2007-10-24 20:50
快速回复:求助:关于C语言中自增的一个问题
数据加载中...
 
   



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

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