如果是:
int a=1;
int b=2;
int c=3;
a=b, b=c,c=a;
计算顺序是从左到右:所以结果是:a=2,b=3,c=2;
整个表达式的值为最后的值,即2.
如果是
printf( "%d, %d, %d\n", a=b, b=c, c=a );
则没有规定顺序
即逗号作为函数参数分隔符,和逗号操作符(用来分隔表达式)的作用是不一样的。
前者,没有规定计算顺序,后者规定为从左到右。
int a=1;
int b=2;
int c=3;
a=b, b=c,c=a;
计算顺序是从左到右:所以结果是:a=2,b=3,c=2;
整个表达式的值为最后的值,即2.
如果是
printf( "%d, %d, %d\n", a=b, b=c, c=a );
则没有规定顺序
即逗号作为函数参数分隔符,和逗号操作符(用来分隔表达式)的作用是不一样的。
前者,没有规定计算顺序,后者规定为从左到右。