回 帖 发 新 帖 刷新版面

主题:新手问题

#define f(x,y)  x*y
  main()
   {int a=3,b=4;
     printf("%d",f(a++,b++)};
      }
请问结果是(a+1)*(b+1)还是a*b
各位,我快考二级了,请快点回答[em2][em2][em2][em2]

回复列表 (共5个回复)

沙发

我也是刚刚学c语言的 
你这个问题 我也不知道 
不过 我觉得 应该是a*b
因为我觉得f(a++,b++)是先执行了a和b的代入x和y
再自增的 
不对之处 望原谅阿

板凳

结果是a*b
这是个自加运算的问题,举个例子
i++是先进行运算,然后再加1
而++i则是先自加,加1以后再进行运算
例如:
int i=1,j;
如果j=i++;则先进行赋值运算,然后再自加
结果j是1
如果j=++i;则先进行自加运算,然后再赋值
结果j是2

3 楼

我对C语言不是很了解,但我觉得是 a*b

4 楼

我觉得是a*b,出现了printf,a++和b++遵从先自加一再输出

5 楼

这个问题其实你自己就可以找到答案啊,你在编译后用调试不就得到问题的答案了吗?
    调试的话你可以逐步看到运行的过程..

我来回复

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