有如下一段代码:
#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.
博客围绕C语言宏定义展开,给出一段代码并提问最后m的值。答案选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.
2685
2万+
1万+

被折叠的 条评论
为什么被折叠?
