鱼C论坛

 找回密码
 立即注册
查看: 3385|回复: 7

c语言中逗号运算符的不解。

[复制链接]
发表于 2012-2-5 23:56:43 | 显示全部楼层 |阅读模式
1鱼币
视频说,“,”逗号运算符,例如,y=表达式1,表达式2,y等于表达式2
    但我做的一条例题:
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=10,x=6的吗???
谢谢

最佳答案

查看完整内容

这种表达式学习的时候用用就好了.工作的时候千万别这么用..前面的人也都说了,是优先级的问题你这样写y=((x=a+b),(b+c));就是你想要的答案了.
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-2-5 23:56:44 | 显示全部楼层
这种表达式学习的时候用用就好了.工作的时候千万别这么用..前面的人也都说了,是优先级的问题你这样写y=((x=a+b),(b+c));就是你想要的答案了.
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-2-6 00:09:56 | 显示全部楼层
优先级的问题,逗号运算符是最低级的,所以y=(x=a+b),(b+c);
也就是  (y=(x=a+b)),(b+c);
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-2-6 08:55:03 | 显示全部楼层
没有见过你这样赋值的- -!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-2-6 09:36:59 | 显示全部楼层
楼主的帖子怎么样?赶紧试试这里的快速回复给楼主很无聊的意思。点评论吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-2-6 09:37:23 | 显示全部楼层
很无聊的意思。
赋值操作符先算右边值,再赋给左边变量。
右边是个逗号表达式,返回的是最左边的值,也就是(x=a+b),这是个赋值表达是,它的值返回的就是 左操作数的应用。就是6.
整个就是y = 6, x = 6.
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-2-6 10:59:14 | 显示全部楼层
这里好像没有注意优先级啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-2-6 11:05:46 | 显示全部楼层
楼上正解。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-11 04:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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