在c++中#define A(n) 2*n+1 则A(2+3)的值为8
答案:3 悬赏:40 手机版
解决时间 2021-02-24 14:47
- 提问者网友:临风不自傲
- 2021-02-23 20:06
在c++中#define A(n) 2*n+1 则A(2+3)的值为8
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-02-23 20:28
可以把#define看成占位符,直接替换就行了
把n替换成2 + 3
2 * 2 + 3 + 1 = 8
如果是这样的话
#define A(n) 2*(n)+1
那就是2 * (2 + 3) + 1 = 11
把n替换成2 + 3
2 * 2 + 3 + 1 = 8
如果是这样的话
#define A(n) 2*(n)+1
那就是2 * (2 + 3) + 1 = 11
全部回答
- 1楼网友:平生事
- 2021-02-23 22:24
宏是原地展开的,展开后是这样:
2*2+3+1
如果要避免这种歧义,定义宏的时候最好这样:
#define A(n) 2*(n)+1
- 2楼网友:鸠书
- 2021-02-23 21:06
宏就相当于一个字符替换,所以a(2+3)被替换成2*2+3+1,值是8.
为了防止这种情况,定义宏时要多加几个括号:
#define a(n) (2*(n)+1)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯