好久没碰C了,今天朋友问了一个C语言连续赋值的问题,问我 int a=b=c=3;为啥错了?好家伙我直接就想应该没这个连续赋值语法吧,。。。。。
还是眼高手低,去网上虚心请教一番明白了。
int a=b=c=3;
赋值时是不能连续赋值的,因为” = “运算符是从右至左结合,所以先看最右边的运算,3赋值给c时,c还没出生,怎么赋便宜美国vps值?(此时只有a声明了,b和c都还没声明)所以违反了先定义后使用原则。
int a,b,c;a=b=c=3;
这就是正确的了,abc都是3,所以初始化时不能连续赋值,其他情况则可以。