鱼C论坛

 找回密码
 立即注册
查看: 2281|回复: 9

这程序小纠结

[复制链接]
发表于 2012-10-3 21:32:11 | 显示全部楼层 |阅读模式
4鱼币
#include <stdio.h>     
void main()
{
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c),(5+c);
printf("y=%d,x=%d\n",y,x);
}
想问一下最后y输出的是(5+c),还是a+b;


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-10-3 21:51:26 | 显示全部楼层
输出a+b
如果是y=((x=a+b),(b+c),(5+c));
就输出5+c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-4 01:13:27 | 显示全部楼层
直接试试不就行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-4 01:25:39 | 显示全部楼层
同意2楼和3楼。楼主,这是考试题吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-4 02:15:58 | 显示全部楼层
试试不就得了    y=6,x=6```
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-4 09:33:18 | 显示全部楼层
目测楼主应该是把逗号表达式没有理解透。{:1_1:}
y=(x=a+b),(b+c),(5+c);在这个表达式中由于存在逗号表达式!而逗号表达式是只把最后一项的值作为整个表达式的值,所以此时Y=5+c, 而printf("y=%d,x=%d\n",y,x);  这个表达式中是将Y的值和X的值输出来,这里的逗号只是作为一个分隔符的,不算是逗号表达式,所以此时X=a+b
最终屏幕输出结果为: x = 6
                                   y = 11
望楼主采纳。 By丶Joker_Qzi
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-4 17:44:35 | 显示全部楼层

纠正一下吧,其实亲自调试一下应该就能发现y=6,x=6
确实,按照逗号表达式的规定,最后一项为整个表达式的值,但是还要考虑运算符的优先级
赋值运算符=为十四级,而逗号运算符,为十五级,在同一语句中要先算=
也就是说原语句相当于(y=(x=a+b)),(b+c),(5+c);,也就是说x和y都等于a+b,虽然整个表达式值为5+c但没有变量来接受这个值
这也是为什么y=((x=a+b),(b+c),(5+c));中y就等于5+c的原因,先算括号里的,逗号表达式就比赋值表达式优先了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-4 23:15:28 | 显示全部楼层
the_one 发表于 2012-10-4 17:44
纠正一下吧,其实亲自调试一下应该就能发现y=6,x=6
确实,按照逗号表达式的规定,最后一项为整个表达式的 ...

呃…  对啊!!卧槽   刚发现  呵呵 谢啦~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-5 21:01:51 | 显示全部楼层
y=(x=a+b),(b+c),(5+c);  什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-24 23:13:44 | 显示全部楼层
       int main()
       {
           int a = 2, b = 4, c = 6, x, y;
           y = (x = a + b), (b + c);
           printf("y = %d, x = %d\n",y,x);
           a = 2, b = 4, c = 6, x, y;
           y = ((x = a + b), (b + c));
           printf("y = %d, x = %d\n",y,x);
           return 0;
        }
试试这个吧:ton:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-15 04:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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