inta,b,c;b=(a=35,a4,a++);printf("%d\n",(c=a,6*c,b+c)
这是逗号表达式,从左向右运算,表达式结果为最右侧表达式的值
a=3 * 5 = 15,a*4没啥用,a++先返回a的值,然后a再加1,所以最后b=15,a=16
然后printf又是逗号表达式,c=a=16,6 * c没啥用,最后输出b+c = 15 + 16 = 31
逗号表达式,从左计算到右,返回最右边的值。
所以a是16,b是15,c是16,最后输出a+c,即输出31。
如果有用,望采纳,谢谢!
这题知识点:逗号表达式,是c语言中的逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。供参考:https://baike.baidu.com/item/%E9%80%97%E5%8F%B7%E8%A1%A8%E8%BE%BE%E5%BC%8F/4496335?fr=aladdin
int a, b, c;
b = (a = 35, a * 4, a++); //逗号表达式:a = 35; a*4=35*4=140; a++ ===> b = a = 35, a++ = 36
printf("%d\n", (c = a, 6 * c, b + c)); //逗号表达式:c = a =36; 6*c=6*36=216; %d = b + c = 35+36=71