鱼C论坛

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

[已解决]课后题的问题

[复制链接]
发表于 2011-2-19 19:38:01 | 显示全部楼层 |阅读模式

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

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

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", y, x);
}

结果怎么是
y = 6 想= 6

不是说
y= 表达式1,表达式2,表达式3  取最后一个值吗?
最佳答案
2011-2-19 21:18:49
是因为赋值运算符= 的优先次序大于逗号运算符的级别。   
所以 y = (x = a + b), (b + c);
会先赋值的。   你可以改为y =( (x = a + b), (b + c));这样就会先算逗号运算符再算赋值运算符了。
1.JPG
2.JPG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-2-19 21:18:49 | 显示全部楼层    本楼为最佳答案   
是因为赋值运算符= 的优先次序大于逗号运算符的级别。   
所以 y = (x = a + b), (b + c);
会先赋值的。   你可以改为y =( (x = a + b), (b + c));这样就会先算逗号运算符再算赋值运算符了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-2-19 21:51:48 | 显示全部楼层
哦 谢谢啊 呵呵 新手的傻傻问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-2-19 23:00:17 | 显示全部楼层
呵呵  我也是新手   才开始学   在今天之前我也没弄明白过这个问题,今天看视频时,看到小甲鱼老师在视频中有出现运算符优先级表。  再一看到你的题目,就突然感到茅塞顿开,想明白了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-2-21 01:56:58 | 显示全部楼层
甲鱼兄啊,你的问题有人给你反映出来喽~~~{:3_61:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-2-21 12:47:07 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2014-3-14 21:34:58 | 显示全部楼层
哈哈,不错不错,总结一下,本来是多个表达式赋值,只考虑最右边的一个,八国,还要先考虑等号比逗号优先级别高哦,!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-26 00:24:02 | 显示全部楼层
是因为赋值运算符= 的优先次序大于逗号运算符的级别。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 22:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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