c语言lover 发表于 2014-7-12 18:37:24

为什么这个式子得出来y=6????


void main()

{
        int a=2,b=4,c=6,x,y;
        y=(x=a+b),(b+c);
        printf("%d,%d\n",y,x);
}         
小甲鱼不是说y的值为最后一个式子吗??????????

牡丹花下死做鬼 发表于 2014-7-12 18:42:44

这是甲鱼口误 ←_← N多鱼油提出过这个问题了 O(∩_∩)O~

reg163 发表于 2014-7-12 18:56:22

你自己看看运算符的优先级吧。等于6木有错啊,赋值优先于逗号。
y=(x=a+b,b+c);这样结果就不一样了

yimingpeng 发表于 2014-7-12 19:02:48

对,甲鱼口误了,事实上是y最后被x赋值,并非b+c

haovcf 发表于 2014-7-12 20:16:54

,号运算符优先级高于=值运算符

hfut_wangfei 发表于 2014-7-13 11:12:59

3楼正解:handshake
页: [1]
查看完整版本: 为什么这个式子得出来y=6????