读书人

关于printf 函数的求值顺序,该如何解决

发布时间: 2012-04-03 12:38:19 作者: rapoo

关于printf 函数的求值顺序
如题,求值顺序问题,据书上说:不同的编译器,求值顺序不同,CB是从右到左的.
代码如下:
#include<stdio.h>

void main()

{
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);

}

用VC 编译的结果是:
8
7
8
8
-8
-8
Press any key to continue

从结果上看,还真看不出是从右到左,还是从左到右的,希望给予高手指点!



[解决办法]
你确定结果就是这样的吗
更我想的不一样
我以为哦就是i++与++i的区别,即引用与自增的先后关系
[解决办法]
[Session started at 2007-12-29 17:24:32 +0800.]
8
8
7
8
-7
-8

text1 has exited with status 0.
我的和你不一样


[解决办法]
楼主不用在这个问题上纠缠而影响学习进度.
这不是C语言的问题.
只是和你的编译器求值顺序有关,不同的编译器设计的时候,求值顺序有所差异
:)
论坛上有很多这样的帖子,你可以发铁先艘一下嘛
PS:我估计很多人都厌倦了这个问题
[解决办法]
我在unix下执行的结果是
9
8
8
9
-8
-9

可见是从左往右计算的.
[解决办法]
3楼说的好

读书人网 >C语言

热点推荐