C语言 设有如下宏定义:#define A 3+2 #define B A*A,则表达式B*B的值为多少结果是23,这是怎么算的?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 12:42:19
C语言 设有如下宏定义:#define A 3+2 #define B A*A,则表达式B*B的值为多少结果是23,这是怎么算的?

C语言 设有如下宏定义:#define A 3+2 #define B A*A,则表达式B*B的值为多少结果是23,这是怎么算的?
C语言 设有如下宏定义:#define A 3+2 #define B A*A,则表达式B*B的值为多少
结果是23,这是怎么算的?

C语言 设有如下宏定义:#define A 3+2 #define B A*A,则表达式B*B的值为多少结果是23,这是怎么算的?
掌握"宏"概念的关键是“换”.一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”.所以只要换就可以了:把B换成A*A,那么B*B就是A*A*A*A,然后把A换成3+2,结果就是:3+2*3+2*3+2*3+2=23;
不知道你理解了没有,如果是这样宏定义A的,那么结果又不一样了,#define A (3+2)
那么结果就是5*5*5*5,所以比它本来没括号,你不能习惯的加了括号,这是最容易犯错的.