int a=1;
执行printf(“%d”,(a+5,a++));输出的结果为1
因为(a+5, a++)为括号表达式,值为括号表达式右边表达式的值,
右边的a++就是在使用的a的值后在让a自增一次,而使用a的值时a=1,所以打印结果为1,
如果再在这个printf后面再加一个打印一句打印a的值,就会打印出2.
#include <stdio.h>
int main(void){
int a=1;
printf("%d",(a+5,a++));
printf("\n%d",a);
return 0;
}
逗号表达式,是c语言中的逗号运算符将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。(a+5,a++)为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值即 a++,又因为 ++ 在后,所以先返回 a = 1 的值输出 ,再执行 a++ = 2。