标签: c
int a=0; int b=1; int c=a,b; int d=(a,b);
答案 0 :(得分:5)
在初始化之外,a,b中的逗号是逗号运算符,并且计算结果为b。涉及d的行中的括号使得这种情况如此。所以这条线实际上只相当于:
a,b
b
d
int d = b;
但是,在涉及c的行中,这不是逗号运算符的用法。相反,它只是一个变量定义列表,相当于:
c
int c = a; int b;
(由于重新定义了b,因此无法编译!)