printf()函数的处理过程,是先将参数从右到左遍历一遍,最后才执行打印操作,而不是遍历一个打印一个。
编译器在处理前置,和后置时是不一样的。
在处理后置时:是将值放入临时量中,在输出时直接从临时量中取值
在处理前置时:是等运算完成后,直接从I的地址中取值
也就是说,编译器对每个后置运算符会保存一个临时变量,执行完所有的自加自减运算后,按照临时变量或者内存中的数进行输出
#include <stdio.h>
void main()
{
int i=10;
printf("%d %d %d %d %d
",i--,--i,++i,i++,i);
}
运行后:11 10 10 10 10
#inlcude <stdio.h>
void main()
{
int i = 0;
printf("%d,%d,%d ", i++, --i, i++);
}
运行后:0 1 0