1楼:巴扎嘿
输出的值分别是(++x,y++)和z+2
(++x,y++)这个是一个逗号表达式,返回值为最右边表达式的值。所以返回的值为y。
z+2就是3
所以输出为3 3
这个主要考的是逗号表达式返回值
有段c语言程序、求输出结果:main()int y=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);求运行结果,多谢
2楼:杨兵
答案是:3 3
输出的值y++和z+2两个数的值
其中(++x,y++)只能输出一个值作为%d输出,(++x,y++)中包含“,”运算符,它的运算规律是从左至右执行,所以输出的值只能为y(值为3),然后再进行y++运算
下一个%d的值为z+2(值为3)
运行结果为:3 3
楼主可以在编译环境中试一下下面的程序,就知道答案的正确性了:
#include
void main()
3楼:匿名用户
3**rintf("%d%d\n",(++x,y++),z+2);
第一个%d输出时,是(++x,y++)的值,里面有个逗号,逗号是输出最右边的,所以应该是输出y++;y++时,先取再加,就是先输出y,再自增1,所以第一个输出3
第二个就容易了,就是输出z+2,也就是3