VC6里面,自增自减用printf输出时,到底是按照啥求值顺序啊??
看视频教程的时候,举了如下例子,叫我们注意用Printf函数输出时,注意输出列表中的求值顺序问题,但没有说明到底是什么顺序:#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--);
}
输出结果是
8
7
8
8
-8
-8
看到第一行输出数字是8,应该就知道不是从左开始执行的。
于是我假设是从右开始执行,对程序做了如下修改
#include <stdio.h>
void main ()
{
int i=8;
printf("%d\n",-i--);
printf("%d\n",-i++);
printf("%d\n",i--);
printf("%d\n",i++);
printf("%d\n",--i);
printf("%d\n",++i);
}
输出结果:
-8
-7
8
7
7
8
还是不对啊,到底求值顺序是什么?求高手指点!
[ 本帖最后由 raygelion 于 2015-3-8 17:27 编辑 ]