#include<stdio.h>
main()
{
int x=10;
int y=x++;
printf("%d,%d",(x++,y),y++);
}
老师讲解时说printf函数自右向左执行,逗号表达式以最后一个表达式的值为其值。程序执行后输出11,10.
可是我编译后输出结果是10,10.请问正确结果到底是怎样的?另外关于逗号表达式的相关知识能不能给我详解和举例下?谢谢啊!
那printf函数计算其中表达式时是不是自右向左执行呢?老师讲解时强调了这一点。如果是自右向左,那么运行printf("%d,%d",(x++,y),y++);语句时,首先执行y++,y值变为11,则(x++,y)的值也就是11了啊。这样的话,最终输出的不就是10,11了么?