int x=5; int y=2+(x+=x++,x+8,++x); printf("%d",y); 求程序的结果并解释.
问题描述:
int x=5; int y=2+(x+=x++,x+8,++x); printf("%d",y); 求程序的结果并解释.
答
这个题目与逗号表达式以及++运算有关系.
首先x+=x++,x+8,++x这个表达式可以变成x+=x++,++x
然后从右往左来:++x得到x=6;
继续x+=x++ 得到x+=6从而x=12
从而x+=x++,x+8,++x表达式的值为12
y=2+(x+=x++,x+8,++x)=14;
所以输出结果是14