main()
{
int i;
i=3;
printf("%d,%d,%d",i,i++,i++);
}
运行结果:
5,4,3
为什么呢?
printf("%d,%d,%d",i,i++,i++);//调用函数
这个与函数调用时实参的值求值顺序有关,在大多数编译器中顺序是从右到左的,TC2就是这样的,
i,i++,i++,从右边起,不就是5,4,3吗
此问题中的 printf("%d,%d,%d",i,i++,i++)
计算顺序是i,i++,i++这个逗号表达式,先计算后面的
按照值传递方式传给printf,结果是5,4,3
个人意见仅供参考
这是由于你的编译器是从右到左进行编译的
这与你所用的编译器有关,有的从左到右,有的从右到左,
你可能是用的TC故它的运算顺序是:
i++ //i=3然后i自加1;
i++ //i=4然后自加1
i //i=5