suweixiao 发表于 2013-12-16 20:21:19

嬉皮士 发表于 2013-12-16 20:57:06

这是我按照你的程序运行的结果,程序结果确实是这样的,可能是那看错了吧!

嬉皮士 发表于 2013-12-16 20:59:24

程序修改如下,可得你想要的结果,have a try!

#include <stdio.h>
#include <stdlib.h>

int main()
{
        int a = 2, b = 4, c = 6, x, y;
        y =(b + c),(x = a + b);
        printf("y=%d,x=%d\n", y, x);
        return 0;
}

18326638710 发表于 2013-12-16 21:09:36

嬉皮士 发表于 2013-12-16 20:57 static/image/common/back.gif
这是我按照你的程序运行的结果,程序结果确实是这样的,可能是那看错了吧!

因为逗号运算符优先级是最低的,把所有的运算都算完了,才算逗号,上面是先算x=a+b=6; 再把x的值赋给y.所以结果x=y=6.

18326638710 发表于 2013-12-16 21:14:37

你可以把y=(x=a+b),(b+c)再打一个扩号。写成这样: y=((x=a+b),(b+c))........

virusx1984 发表于 2013-12-16 21:16:59

我得到的也是 兩個6

virusx1984 发表于 2013-12-16 21:21:09

理論上來說,逗號運算符的結果應該是最後一個語句的值。奇怪了,可能要用看下汇编代碼才行,不過我剛開始學也不知道怎麼看,問問大牛吧

sanzhi6803 发表于 2013-12-16 21:22:40

x还没赋值呢

suweixiao 发表于 2013-12-16 21:26:25

suweixiao 发表于 2013-12-16 21:27:56

suweixiao 发表于 2013-12-16 21:29:53

页: [1]
查看完整版本: 求助一个简单的问题