main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i--,i++,-i--);
}
运行结果为
7
6
8
7
-8
822
这是怎么回事啊,一点也不符啊
不论是从左到右还是从右到左都不对啊

冷静点............. 耐心点.............
这个根本就不是你们说的那个结果,无论你是用VC还是用WIN-TC编译都是一样的结果。
main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i--,i++,-i--);
}
8
7
8
8
-8
-1第六个就数就随机了
这里应该这么分析,在printf里执行的顺序是从右到左,而在这里边执行的应该是类似于++i,在执行完printf后在执行里边的类似于i++的语句
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i--,i++,-i--);
这里是先算-i=8
i++不算这时候i=8
i--也不算这时候i=8
--i=7这时候i值变了
++i=8这时候i值变了,是在前边的7的基础上加的1得来的。
假如你现在在后边再加上一句printf("%d\n",i);
你就会看到,输出的是7而不是8;
这是因为最后的++i 是使i为8了,
这时候就要执行上面的-i--了这时候执行的是i--不是-i--所以是7,
再执行i++得到i=8了
再执行i--得到i=7
这就是为什么不是8而是7了
一定要注意
printf输出是从左到右,而计算的时候是从右到左的。
给你们纠正个错误。希望大家回去好好的体会一下,不要想当然的得出结论了,搞技术的前辈给你们提点意见
[此贴子已经被作者于2006-11-29 10:35:36编辑过]