printf的运算顺序是从右到左,还是从左到右,还是其他的。要看具体的编译器而定,比如下面的一个例子:
int i= 5;
printf("%d,%d/n",++i,++i);
printf("%d,%d/n",++i, i);
printf("%d,%d/n",i, ++i);
在VC中的运行结果是:
7,6
8,7
9,9 ;说明运行顺序是从右到左的。
而在soucre insight中的运行结果(linux gcc编译)是:
7,7
8,8
9,9 ;说明是把相同的参数结果都算出来了,才一起输出,没有一定的规律。
所以使用时还是要特别注意的,不过好像一般也不会碰到有这样的用法。