因为这样 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不就是在赋值?