有如下一段代码:
#define ADD(x,y) x+y
int m=3;
m+=m*ADD(m,m);
最后m的值为()?
A 15 B 18 C 21 D 58
答案是A
解释:C语言中的宏定义#define ADD(a,b) a+b 只是定义了一个操作,并不能当成函数来用,用时直接把ADD(a,b) 部分替换成a+b,直接替换,没有括号,上面的表达式变为: m=m+m*m+m=15.
有如下一段代码:
#define ADD(x,y) x+y
int m=3;
m+=m*ADD(m,m);
最后m的值为()?
A 15 B 18 C 21 D 58
答案是A
解释:C语言中的宏定义#define ADD(a,b) a+b 只是定义了一个操作,并不能当成函数来用,用时直接把ADD(a,b) 部分替换成a+b,直接替换,没有括号,上面的表达式变为: m=m+m*m+m=15.