#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條經(jīng)驗 獲得超1個贊
首先#define的作用是在編譯之后,會將#define的內(nèi)容原封不動地替換調(diào),那么:
printf("%d",10*MIN(i,j));這行在編譯之后就是:printf("%d",10*2<5?5:2+1);
這樣10*2<5 就是20<5返回:false
自然輸入:就是2+1,結(jié)果就是3
需要注意#define不是計算之后再返回結(jié)果,而是普通的替換
- 1 回答
- 1 關(guān)注
- 2091 瀏覽
添加回答
舉報
0/150
提交
取消