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

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個程序輸出為什么是15啊。。 不懂

5aab8a3000013cbc07440992.jpg
define要執行兩次?

正在回答

6 回答

關鍵就是運算符的比較級大??!

0 回復 有任何疑惑可以回復我~
#1

weixin_慕碼人5022369

10*10<15?10;15 乘法運算比三目運算的比較級大
2019-11-27 回復 有任何疑惑可以回復我~

bug: ? int res = 5 * min(2 , 3);計算結果為2,原因就在于它被展開為: res = 5 * 2 > 3? 2: 3;

3 回復 有任何疑惑可以回復我~

K=10*(MIN(i,j))

0 回復 有任何疑惑可以回復我~

三目運算符判斷語句為真輸出?后的語句;并且根據宏定義那個函數也是求兩個數中的較小的數。所以的確應該是10呀

0 回復 有任何疑惑可以回復我~
#1

再睡一會就碼 提問者

我以為答案是100 但是答案是15 我問同學他那意思是先算出100 然后在把100傳給x 在去三目運算符就變成了100<15?100:15 然后輸出15 就是這才不懂啊 他不會是強行解釋吧 ?
2018-03-16 回復 有任何疑惑可以回復我~
#2

再睡一會就碼 提問者

懂了 看了樓上的 這都是我自己瞎想的 哈哈。。
2018-03-16 回復 有任何疑惑可以回復我~
#3

qq_無名_120

應該是優先級的問題吧,三目運算符的優先級低于乘法運算符,因此先算乘法
2018-03-18 回復 有任何疑惑可以回復我~

所以變成了10*x < y ? x:y

1 回復 有任何疑惑可以回復我~
#1

慕用8327027

我懂了,因為宏定義存在隱患:就比如這個 如果遇到如:c * Add(a,b) * d的時候就會出現問題,代數式的本意是a+b然后去和c,d相乘,但是因為使用了define(它只是一個簡單的替換),所以式子實際上變成了c*a + b*d
2018-03-16 回復 有任何疑惑可以回復我~
#2

世末理想鄉 回復 慕用8327027

是的,宏定義只是簡單的用一個符號代替一個符號
2018-03-16 回復 有任何疑惑可以回復我~
#3

再睡一會就碼 提問者

應該就是這樣了?
2018-03-16 回復 有任何疑惑可以回復我~
#4

weixin_慕碼人5022369 回復 慕用8327027

nice
2019-11-27 回復 有任何疑惑可以回復我~
查看1條回復

宏定義是直接替換

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

這個程序輸出為什么是15啊。。 不懂

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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