#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;
} 嬉皮士 发表于 2013-12-16 20:57 static/image/common/back.gif
这是我按照你的程序运行的结果,程序结果确实是这样的,可能是那看错了吧!
因为逗号运算符优先级是最低的,把所有的运算都算完了,才算逗号,上面是先算x=a+b=6; 再把x的值赋给y.所以结果x=y=6. 你可以把y=(x=a+b),(b+c)再打一个扩号。写成这样: y=((x=a+b),(b+c))........ 我得到的也是 兩個6 理論上來說,逗號運算符的結果應該是最後一個語句的值。奇怪了,可能要用看下汇编代碼才行,不過我剛開始學也不知道怎麼看,問問大牛吧 x还没赋值呢
页:
[1]