亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

#define賦值

#define賦值

C C++
永不墜落的隕石 2016-01-01 13:28:33
#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不是計算之后再返回結果,而是普通的替換

查看完整回答
反對 回復 2016-01-01
  • onemoo
    onemoo
    #define之類的預處理指示是作用在編譯之前的預處理階段。
  • 1 回答
  • 1 關注
  • 2095 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號