回 帖 发 新 帖 刷新版面

主题:求各位大侠解答

#include<stdio.h>
int f(int,int)
int main(void)
{
     int number=10;
     printf("%d,%d",f(n++,n++),f(++n,++n));
}
结果是:20,23
请帮忙分析分析不胜感激!!!

回复列表 (共6个回复)

沙发

????你的f函数呢???

板凳

[quote]????你的f函数呢???[/quote]
int f(int a,int b)
{
    rerun a+b;
}
请帮帮忙呀?

3 楼

25,23
printf中参数自右向左入栈,再结合n++(在f()中n++和++n相同的撒)、答案很明显了。

4 楼


貌似本人在电脑上运行的是24 23

5 楼


这貌似是个很纠结的问题,跟编译器有关。如果在函数调用时,把实参值赋值给另外的变量结果和不赋值的情况又不一样。以后编程尽量别搞这种就行。还是谢谢各位的关注

6 楼

GCC 编译器上是25,24

我来回复

您尚未登录,请登录后再回复。点此登录或注册