【求助】帮忙分析一下这一段代码和得到这个结果的原因,谢谢!
c++吧
全部回复
仅看楼主
level 11
#define MA(x) x*(x-1)
main()
{
int a=1,b=2;
printf("%d\n",MA(1+a+b));
}
[哈哈]
2013年06月17日 10点06分 1
level 13
#define MA(x) x*(x-1)
MA(1+a+b) => 1+a+b*(1+a+b-1)
2013年06月17日 10点06分 2
什么意思啊?看不懂啊[泪]
2013年06月17日 10点06分
level 13
#define MA(
x)
x*(
x-1)
MA(
1+a+b) ==宏替换==>
1+a+b*(
1+a+b-1) ==运算顺序==> 1+a+
b*(
1+a+b-1) ==代入a,b的值==> 1+1+
2*(
1+1+2-1)
2013年06月17日 11点06分 3
不好意思,这一题的答案是8不是12[呵呵]
2013年06月17日 11点06分
回复 飘过海的承诺 :不好意思,建议你算一下1+1+2*(1+1+2-1)是等于8还是等于12
2013年06月17日 11点06分
回复 zjfaok :这次真的不好意思了,我总是记不住优先级顺序[不高兴]
2013年06月17日 11点06分
回复 zjfaok :真的很感谢,O(∩_∩)O哈哈~[真棒][太开心]
2013年06月17日 11点06分
1