青青兮云 发表于 2020-3-23 19:49:31

关于一个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]
查看完整版本: 关于一个printf和多个printf的问题