鱼C论坛

 找回密码
 立即注册
查看: 2621|回复: 5

C语言运算逗号问题

[复制链接]
发表于 2013-12-27 09:44:12 | 显示全部楼层 |阅读模式

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

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

x
void main()
{
        int a = 2, b = 4, c = 6, x, y;
        y = (x=a+b), (a+c);
        printf("y=%d, x=%d\n", y, x);
}
看视频教程上这种情况y应该是最后那组赋值上去,我测试的时候怎么y是赋值符号后最左边那组的值呢?
y = 5, (a+c), (x=a+b), 3; 按教程上说像这个打印出来y应该是3吧,可是我打印出来是5呢
不知道什么地方理解错了,请指教,谢谢

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

使用道具 举报

 楼主| 发表于 2013-12-27 16:58:56 | 显示全部楼层
各位前辈这不算问题吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-27 20:21:09 | 显示全部楼层
1.逗号运算符的优先级是很低的, y = (x=a+b), (a+c);相当于 (y=(x=a+b)) , (a+c);  所以肯定左边那组

2.一样的问题 y = 5, (a+c), (x=a+b), 3; 相当于 (y = 5), (a+c), (x=a+b), 3; 所以y肯定是5

y =( 5, (a+c), (x=a+b), 3); 这样就ok 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-27 20:26:42 | 显示全部楼层
楼上说对:lol::lol::lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-27 20:45:24 | 显示全部楼层
楼上正解:shock:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-28 10:25:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 19:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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