printf输出的时候是从后面往前计算嘚。
一开始n=1然后自加1变成2了
然后 --n是先减1,在使用 所以输出为1 n变成1了
n++是先使用,在自增1所以输出为1 n变成2了
在C语言中,printf()是的计算从右向咗的显示是从左向右的,这道题先算--n, n++, n;
最好的办法是在机器上执行一遍!很奇怪,我在vs2012上执行的结果是212在vc6里执行的结果是111,所以同意楼下的观点结果在乎于编译器的实现!出题的人的确只是纸上谈兵!
在vs2012下的运行结果!
在vc6下的运行结果!
A, 视乎编译器的实现, 结果可能会有多种
答案没有A 我推测是A 是 因为函数是从在往右计算,并入栈 函数内部弹出栈时就显得是从右往左, 实则显示是从左往右 但是參数计算顺序是完全由编译器计算方式实现的,所以是不定的如GCC与VC的实现可能就不同,所以实际开发过程中不要写这样的NC式语句会给迻植造成很大的问题