关于一个printf和多个printf的问题
void main(){
int i=2;
printf("%d",i++);
printf("%d",i--);
printf("%d",++i);
printf("%d",--i);
printf("%d",-i++);
printf("%d",-i--);
}
2,3,3,2,-2,-3
void main()
{
int i=2;
printf("%d,%d,%d,%d,%d,%d",i++,i--,++i,--i,-i++,-i--);
}
2,2,2,1,-2,-2
为什么输出的结果不一样。这里用的是 vc++6.0编译器。
解答:1.printf执行顺序从右到左。
2.后加减运算是执行完整个pirntf后才加的。
3.从右向左,-2,(i=2)
4.-2(i=2)
5.1(i=1)
6.2(i=2)
7.2(i=2)
8.2(i=2)这里i=2是执行过加减
这和编译器有关系,不同编译器应该不一样,但都有规律。
页:
[1]