注册 登录
编程论坛 C++教室

printf语句造成这么大的困惑,sigh!

alcauchy 发布于 2007-07-19 22:46, 570 次点击

我遇到了一个很奇怪的问题,周围没人能帮我解决,哪位明白的给解释解释呀。
问题看起来挺简单,其实不然,不信你试试。

int a,b;
a=b=1;
printf("%d\n%d\n%d\n",a,a+1,a++);
printf("%d\n",a);
printf("%d\n%d\n%d\n",b,b+1,++b);

原以为输出会是2 3 1 2 2 3 2 ,结果竟然是 1 2 1 2 2 3 2.

3 回复
#2
aipb20072007-07-19 22:59
没什么奇怪的

你理解a++和++a就懂了。
第一句打印时,a == 1,这句结束a == 2。
#3
alcauchy2007-07-19 23:11
回复:(aipb2007)没什么奇怪的你理解a++和++a就懂了...
哦,明白了。
原来是整句执行完之后再加1呀。
非常感谢。
#4
Jackzdong2007-07-20 10:35
研究这样的题目没有实际意义的, 可能不同的编译器会有不同的结果
1