鱼C论坛

 找回密码
 立即注册
查看: 2316|回复: 8

菜鸟求助,关于逗号运算符

[复制链接]
发表于 2014-6-19 23:38:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
void main()
{
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d\n",y,x);
}

这是小甲鱼老师的课件里面的一个练习题,我觉得应该是y=10,x=6;
但是vc6.0测试的结果是y=6,x=6;
求解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-20 01:18:15 | 显示全部楼层
x为6,因为a+b=2+4=6,不再解释
y的结果为6,是因为,y=(x=a+b),(b+c);不等于y=((x=a+b),(b+c));,如果是后者,y的值为10,解释如下:
y=(x=a+b),(b+c);中b+c的值与a+b的值都被求出,a+b的值被赋给了变量x,而x的值又被赋给了y,把本句拆分开,相当于x=a+b;y=x,b+c;这样看就清晰很多了,y=x,b+c中y的值于x的值相同,均为6,但是表达式的值为10(这就是你误认为的结果),如果本句中的表达式为y=(x,b+c),那么由于都好表达式的缘故,y的值和表达式的值相同,均为10
总结:本例y=(x=a+b),(b+c);中,b+c的值是表达式的值,与y的值无关

满意请采纳,不满意请追问

评分

参与人数 1鱼币 +5 贡献 +2 收起 理由
怀念部队 + 5 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 09:39:28 | 显示全部楼层

对哦,等号后面没用括号括起来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 12:35:06 | 显示全部楼层
2楼解释清楚了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-21 22:37:33 | 显示全部楼层
2楼解释得很好。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-30 15:05:34 | 显示全部楼层
是小甲鱼老师的课件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-1 13:23:23 | 显示全部楼层
这个我也不太懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-4 15:45:45 | 显示全部楼层
这个我也不太懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-4 17:42:50 | 显示全部楼层

回帖奖励 +2 鱼币

2楼解释得很好。。。
“y=(x=a+b),(b+c);”不同于“y=((x=a+b),(b+c));”。前者则y值为6,后者则y值为10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 14:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表