鱼C论坛

 找回密码
 立即注册
查看: 4931|回复: 6

逗号运算符

[复制链接]
发表于 2012-11-15 21:26:11 | 显示全部楼层 |阅读模式
2鱼币
#include <stdio.h>
void main()
{
       int   a = 2,b = 4,c = 6,x,y;
        y = (x=a+b),(b+c),a+c;
       printf("y=%d,x=%d\n",y,x);
}



以上例子在vc++6.0运行的结果为 :
x = 6;
y = 6;

按理说应该为:
x = 6;
y = 8;  
才对啊,求解。。。。。。


最佳答案

查看完整内容

是优先级的问题,“=”的优先级比“,”高,所以y=6,将代码改成y=((x=a+b),(b+c),a+c)试试
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-15 21:26:12 | 显示全部楼层
是优先级的问题,“=”的优先级比“,”高,所以y=6,将代码改成y=((x=a+b),(b+c),a+c)试试
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-15 23:12:37 | 显示全部楼层
原来是这样啊,非常感谢你的回答
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-15 23:13:32 | 显示全部楼层

原来是这样啊,非常感谢你的回答
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-21 16:37:43 | 显示全部楼层
恩,我的理解是:x=a+b运算之后,对x进行赋值,这一步进行之后,x值为6,所以最后输出的值为6!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-23 22:36:05 | 显示全部楼层
觉醒 发表于 2012-11-21 16:37
恩,我的理解是:x=a+b运算之后,对x进行赋值,这一步进行之后,x值为6,所以最后输出的值为6!!

x的值为 6后 ,再进行逗号运算,“=”的优先级比“,”的,所以把“x"的值赋给y。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-15 18:39:51 | 显示全部楼层
小飞鱼8 发表于 2012-11-15 21:26
是优先级的问题,“=”的优先级比“,”高,所以y=6,将代码改成y=((x=a+b),(b+c),a+c)试试

懂了,感谢                                             
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-16 08:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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