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

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

比較運算符的類似于數學的鏈接-如“ if((5 <j <= 1))”中的一樣

比較運算符的類似于數學的鏈接-如“ if((5 <j <= 1))”中的一樣

C++ C
幕布斯6054654 2020-02-03 14:17:28
int j=42;if( (5<j<=1) ) {    printf("yes");} else {    printf("no");}輸出:yes為什么輸出是?條件不是只有一半成立嗎?
查看完整描述

3 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

C不了解類似數學的語法,因此


if(1<j<=5)

沒有按照您的期望和要求進行解釋;它應該是


if (1 < j && j <= 5)

或類似。


如其他答案所述,該表達式的計算方式為


 ((1 < j) <= 5)


 =>  ("true" <= 5)


 =>  "true"

其中“ true”(布爾值)被隱式轉換為1,例如explaneid,例如這里,也參考了標準,這解釋了為什么“ true”必須“小于” 5(盡管在C中可能并不完全正確)說“從bool到int的隱式轉換”)


查看完整回答
反對 回復 2020-02-03
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

根據運算符優先級和LR關聯性,


1<j 評估為1


1<=5 評估為1


if(1)

  printf("yes")


查看完整回答
反對 回復 2020-02-03
  • 3 回答
  • 0 關注
  • 820 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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