一个C语言编程问题,请高手帮忙!

int x=10;
int y=x++;
printf(〃%d,%d〃,(x++,y),y++);
为什么这个输出的是11,10?而不是10,10?

第1个回答  2007-04-20
y = x++ 运算后 y = 10 ,x = 11
也就是说 ++ 运算返回的变量值不变,但变量本身的值增加了。
如: x = 10;
(x++) 的值为 10 ,但这时 x 的值是11 。
第2个回答  2007-04-20
int x=10;
int y=x++; \*y=10,x=11*\
printf(〃%d,%d〃,(x++,y),y++);
\*(x++,y)是逗号表达式其值是y=10;y++先取10,*\
所以输出 10,10 没问题
第3个回答  2007-04-20
看编译器啦,我用VC6.0输出10,10

讨论这些没什么意义,如下面的语句
int x=1;
printf("\n%d %d %d\n",++x,++x,++x);
输出
4 3 2
而下面的语句
int x=1;
printf("\n%d %d %d\n",x++,x++,x++);
居然输出
1 1 1本回答被网友采纳
第4个回答  2007-04-20
++运算符
在变量前,所附值也+1
在变量后,附值在引用变量一次后再加1
第5个回答  2007-04-20
是从哪个论坛里找到的这个问题的呀
去年我看了别人的回答至今未懂
这种程序除了考试时有用,难到有人真的这么样写代码吗???
哈哈
纯水!!!
http://hi.baidu.com/blackfall
相似回答
大家正在搜