关于“,”的问题,等待详解分析

来源:百度知道 编辑:UC知道 时间:2024/06/18 14:58:52
main()
{
int y=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2)
}
书上答案是33
我觉得是43
帮帮我吧!

书上的答案正确,是33,搞懂printf("%d%d\n",(++x,y++),z+2)这个语句需要掌握两个小知识:

首先对于++x和y++的处理,可以理解为程序实际上执行了下面的三个语句:
++x;
printf("%d%d\n",(x,y),z+2);
y++;

其次需要理解(x,y)这样表达式的值,结果是y:对于逗号的处理是依次计算,最后一个为整个表达式的值。