有段C语言程序、求输出结果:main()int y=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);求运行结果,多谢

我主要想知道括号里面怎么处理

答案是:3 3
输出的值y++和z+2两个数的值
其中(++x,y++)只能输出一个值作为%d输出,(++x,y++)中包含“,”运算符,它的运算规律是从左至右执行,所以输出的值只能为y(值为3),然后再进行y++运算
下一个%d的值为z+2(值为3)
运行结果为:3 3
楼主可以在编译环境中试一下下面的程序,就知道答案的正确性了:
#include<stdio.h>
void main()
{
int y=3,x=3,z=1;
printf("%d\n%d\n",(++x,y++),z+2);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-11
33
printf("%d%d\n",(++x,y++),z+2);
第一个%d输出时,是(++x,y++)的值,里面有个逗号,逗号是输出最右边的,所以应该是输出y++;y++时,先取再加,就是先输出y,再自增1,所以第一个输出3
第二个就容易了,就是输出z+2,也就是3