1 #include<stdio.h> 2 int main() 3 { 4 int a = 5 ; 5 a = (a = 3*5,a*4),a+5; 6 printf("a = %d\n",a); 7 int b = 5; 8 b = ((b = 3*5,b*4),b+5); 9 printf("b = %d\n",b); 10 return 0; 11 }
a = 60;
b = 20;
表达式1,表达式2,表达式3,------表达式n;
求值过程是先从左到右求出n个表达式的值,并以第n个表达式的值作为整个表达式的值。有括号的话,就先计算括号内的,逗号表达式的运算级是最低的,赋值运算符的优先级要高于它。
第一个式子
先a = 15,然后,a = 60;
第二个式子
先b = 15,由于中间括号结果没有赋值,所以
b = ((b = 15,60),b+5);
b = (60,20);
b = 20;