| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1905 人关注过本帖
标题:[求助]逗号表达式的问题
只看楼主 加入收藏
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
怎么说?a++难道和a=a+1在本质上不是一样吗?
我承认这两者间是有区别的。包括++a在内。

倚天照海花无数,流水高山心自知。
2006-07-19 15:58
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用fanslichen在2006-7-18 23:51:24的发言:

一:a=3*5,a*4整个表达式的值是60
二:1 :(a=3*5,a*4),a+5 是先计算出A的值是15
2 :进行a*4的运算得60(但a值未变,仍为15)
3 :进行A+5得20,即整个表达式的值为20 
而第二题为什么最后的答案不是65 而第2部为什么a不变仍是15
到底用法是怎么回事?
请大家帮帮忙!

逗号表达式的值取最右边的结果,然而运算的顺序从左往右执行。
如此,分析第一题:a=3*5,a*4
所以表达式是先把a赋值为15,然后进行a*4的运算,所以,表达式的结果为60;
第二题,左边同样是把a赋值为15,至于a*4的运算有没有执行,这无关紧要(实际上它不执行,在编译优化的时候会去掉该部分),然后执行右边部分a+5,所以表达式的值为15+5.
不知楼主明白没?

[此贴子已经被作者于2006-7-19 16:07:28编辑过]


对不礼貌的女生收钱......
2006-07-19 16:06
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-19 17:50
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
我想让楼上的解释一下a++ 的执行过程.谢谢.

倚天照海花无数,流水高山心自知。
2006-07-19 21:50
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用穆扬在2006-7-19 17:50:03的发言:

1.注意你在4楼是怎么说的
“如果a的值要改变,就得要有赋值表达式了。”
2.你已经承认“这两者间是有区别的”
我不知道你究竟还想表达什么

我不知道形式上的差别算不算两者之间的区别.其实我所说的区别重点是在说a++,和++a 之间的区别.
我想对这样的问题我们还是少钻牛角尖吧.
呵呵


倚天照海花无数,流水高山心自知。
2006-07-19 21:57
恋红尘
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-6-10
收藏
得分:0 
(a=3*5,a=a*4),a+5 这样就可以算出65.
2006-07-20 12:01
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
这样表达式是65,a=60

倚天照海花无数,流水高山心自知。
2006-07-20 14:28
恋红尘
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-6-10
收藏
得分:0 
2006-07-27 12:21
yuchujin
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-25
收藏
得分:0 

表达式的值和变量的值要搞清楚


........晕 这个BBS不能贴图.......... G-G-G-G-G-G-G-UNIT
2006-07-27 14:54
2006_xly
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-7-26
收藏
得分:0 
前面两位说的很好,表达式的值和A的值是两回事,

请好好的考虑一下。

不过这题看优先级有可以看出来,逗号的优先级最低,逗号

前面是一个表达式,后面也是一个啊,自左至右怎么可能A的值变化呢?

做事全身心的投入,一步一个脚印!!!
2006-07-27 17:13
快速回复:[求助]逗号表达式的问题
数据加载中...
 
   



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

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