如果c = a,b,c的值是多少;

时间:2011-08-05 00:02:01

标签: c

int a=0;
int b=1;
int c=a,b;
int d=(a,b);

1 个答案:

答案 0 :(得分:5)

在初始化之外,a,b中的逗号是逗号运算符,并且计算结果为b。涉及d的行中的括号使得这种情况如此。所以这条线实际上只相当于:

int d = b;

但是,在涉及c的行中,这不是逗号运算符的用法。相反,它只是一个变量定义列表,相当于:

int c = a;
int b;

(由于重新定义了b,因此无法编译!)