推荐知乎有趣的话题:程序问提

来源:百度文库 编辑:高校问答 时间:2024/04/27 18:37:47
执行下列语句后,a的值为:
int a;
#define M(x,y) (x*y)
a=M(1+2,3);

什么意思?看不太懂

答案为7呀
#define M(x,y) (x*y)预定意呀
当后面调用时就案这种格式去只行呀
M(x,y)相当于标识,后面是计算的表达式
所以a=M(1+2,3);等於
a=(1+2*3);
a=7

#define M(x,y) (x*y)能在int a;语句的后面定义吗?看不懂;

#define M(x,y) (x*y)
就是用M(x,y)代替(x*y)
在这里好像不幸也

#define只是单纯的字符串替换,
表达式经过替换后变成:
a=(1+2*3)
其中1+2是x, 3是y.

所以a的值就是7.