程序最后输出什么?( )
1 2 3 4 5 6 7 8 9 10 | #define Mul(x,y) ++x*++y
void main() { int a = 1; int b = 2; int c = 3;
printf(“%d”,Mul(a+b,b+c)); } |
正确答案: A 你的答案: 空 (错误)
14
24
48
18
Mul(a+b,b+c)经过宏替换变成++a+b*++b+c,需要注意宏替换的原则,是不会凭空加括号的。另外++优先级大于*,因此会先++a 和++b,然后a=2,b=3进行a+b*b+c=2+3*3+3=14