标题:瞧一瞧看一看,逗号表达式的问题
只看楼主
genius023
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-7-7
 问题点数:0 回复次数:3 
瞧一瞧看一看,逗号表达式的问题
main(){
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d",y,x);
}
为什么结果是y=6,x=6??
不是说y等于整个逗号表达式的值,也就是表达式2的值吗,那y应该等于10啊?
搜索更多相关主题的帖子: 表达 逗号 
2007-08-04 09:23
medicihophy
Rank: 1
等 级:新手上路
威 望:1
帖 子:102
专家分:0
注 册:2007-7-28
得分:0 
你真逗!
y=(x=a+b),(b+c);
其实是y=(x=a+b);
(b+c);
然后整个表达式的值为(b+c)而已
举个例子:
int a=2,b=4,c=6,x,y;还是你的式子
我无法想想这是在干嘛?
难道是这样?
6,x,y运算结果为y,
然后c=y,
4,c运算为c
b=c,
2,b运算为b
结果a=b,
呵呵,这就搞笑了!

2007-08-04 09:35
genius023
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-7-7
得分:0 
本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。我有错吗??!!就是逗号.

你那个幽默的例子是为了说明啥哩?
2007-08-04 09:56
medicihophy
Rank: 1
等 级:新手上路
威 望:1
帖 子:102
专家分:0
注 册:2007-7-28
得分:0 
y=(x=(a+b),(b+c))
这才是你说的结果

2007-08-04 09:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-160261-1-1.html




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

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