问题描述:
main()
{
int y=3,x=3,z=1;
printf("%d%d\n",(++x,++y),z+2);
}
输出结果为什么是'3,3'呢
逗号表达式要求是以第N个表达式的值为准,那么
(++x,++y)的值为4,但与答案矛盾吧!?
问题解答:
正如你说的,逗号表达式要求是以第N个表达式的值为准。
我运行的结果是:
43
运行环境为windows的dev C++4
不知你是怎么得到33的结果的?
答案因该是43
我用TC运行了。
VC6.0里面。结果是43呀,正确的呀。
答案是++y和z+2的值吧,应该是这样,你不信可以修改一下数值看看检验一下,好象是压栈的原理,先进后出,z+2最后进去,输出反而在前面.
两个结果
(++x,++y)的,
z+2的