鱼C论坛

 找回密码
 立即注册
查看: 4614|回复: 4

求解释?逗号运算符,真的搞不懂!

[复制链接]
发表于 2013-4-28 16:34:08 | 显示全部楼层 |阅读模式
5鱼币
#include <stdio.h>

void main()
{
     int x, y;
     int a=2, b=4, c=6;

     x = ( a+b ), ( b+c );
     y = ( b+c ), ( a+b );

     printf("x = %d\ny = %d\n", x, y);
}


不是取表达式2的值吗?怎么运行结果却 x=6,y=10。

最佳答案

查看完整内容

赋值运算符的优先级大于逗号运算符,所以先执行,x = (a + b) 再执行(b + c)。逗号表达式的形式为:表达式1,表达式2,...;这里第一个表示为x = (a + b),第二个表达式为(b + c),楼主可能误解为将(b + c)赋值给x了。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-28 16:34:09 | 显示全部楼层
赋值运算符的优先级大于逗号运算符,所以先执行,x = (a + b) 再执行(b + c)。逗号表达式的形式为:表达式1,表达式2,...;这里第一个表示为x = (a + b),第二个表达式为(b + c),楼主可能误解为将(b + c)赋值给x了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-28 19:33:53 | 显示全部楼层
楼上正解啊啊啊啊啊啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-4-28 22:44:14 | 显示全部楼层

呵呵,谢了,我承认又被课本给忽悠了(说了一堆废话,最后还不是一个括号搞定),什么y=表达式1,表达式2,……,表达式n,值取表达式n……
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-30 17:14:54 | 显示全部楼层
已经有答案了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-31 02:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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