#define MIN(a<b) a<b?b:a+1void main(){ int i=2,j=5; printf("%d",10*MIN(i,j));}为什么答案是3.请问哪里需要注意吗
1 回答
太阳雨下
TA贡献7条经验 获得超1个赞
首先#define的作用是在编译之后,会将#define的内容原封不动地替换调,那么:
printf("%d",10*MIN(i,j));这行在编译之后就是:printf("%d",10*2<5?5:2+1);
这样10*2<5 就是20<5返回:false
自然输入:就是2+1,结果就是3
需要注意#define不是计算之后再返回结果,而是普通的替换
- 1 回答
- 1 关注
- 2046 浏览
添加回答
举报
0/150
提交
取消