[求助]关于printf的问题
一个程序:如#include<stdio.h>
main()
{
int n;
n=1;
printf("%d%d%d",n,n++,++n);
}
输出结果为322
执行顺序是从右至左
请求解释?请求从printf函数的运行原理的角度给出解释.
谢谢
老兄,你的编译器到了保修期了没?!
对于c 的调用约定,就是从右往左将参数压入堆栈,
只不过不同的编译器 对n++这个参数进行自增运算的位置不同,
例如: 说打印 222 的是因为编译器是将所有的参数压入堆栈后才 执行了 后++运算.
而打印 322 的是因为编译器 自右往左 将第2个参数压入堆栈后,在将第3个参数压入前执行了后++运算,这影响了 第3个参数...使它变成了3.