为什么不能int a=b=2;

为什么不能int a=b=2;

因为这样 b 变量没有被声明, 应该是

int a,b;

a=b=2;

1. int a=b=2; 在编译器看来,等同 int a=(b=2);

2. 赋值运算符的返回值等于右值。

3. 执行时,会先执行 b=2;但此时b变量并没有声明。

4. 所以在int a=b=2;前加上int b;就行了。

要么连续声明:int a, b, c, d;

a = b = c = d = 2;

要么分开声明:int a; int b; int c; int d;

a = b = c = d = 2;

因为编译器不知道b是什么,你只声明了a

变量要先声明,再赋值,你令b=a不就是在赋值?