逗号运算符的优先级是级别最低的,结合性自左向右,最后一个表达式的值是整个逗号表达式的最终值。
注意要关注逗号表达式中的表达式。
#include <stdio.h>
void main()
{
int i,j;
int a,b;
a = 10, b = 10, j = 10;
i = ( j++, j+100, 999 + j ); //先计算j++得到j=11,然后计算j+100=110,最后计算999+101=1010 这里的j变量是全局的,会受到前面的影响
printf( "i=%d,j=%d\n", i, j );
j = ( i = a + b ),( b + i );
printf( "y=%d,x=%d", i, j );
}
运行结果:
所有运算符中,逗号运算符的级别是最低的,因此在区分逗号表达式和赋值表达式的时候,要清楚是哪个运算符最后进行的计算。例如表达式a=7+b+c,a++为逗号表达式.不是赋值表达式.因为这个表达式的功能是将7+b+c的值从给变量a后,变量a自增加1,因此最后计算的为逗号表达式。