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

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

為什么答案是B 怎么理解?

為什么答案是B 怎么理解?

C
守著星空守著你 2022-12-21 19:15:19
C語言:while(printf("x"))內的表達式為什么與'0'等價,如何解釋? t=0; while(printf("*")) { t++; if(t<3) break; } 下面描述正確的是: A 其中循環控制表達式與0等價 B 其中循環控制表達式與'0'等價 C 其中循環控制表達式是不合法的 D 以上說法都不對 
查看完整描述

2 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

他說的是printf("*")與‘0’等價
其實是這樣的
printf這個函數的
返回值
是輸出字符的個數
現在printf("*")的返回值是1
在while里只有0
和非0兩種
所以只要選排一個非0的就能說是等價的
而‘0’需要轉成ASCII碼看是不為0的
所以選B

查看完整回答
反對 回復 2022-12-25
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

樓主你好!printf()函數返回值為整型。若成功則返回輸出的字符數,輸出出錯則返回負值。這里題目返回整數1。由于'0'的ascii碼為48,屬于非0!while()函數括號里的非0相當于true,0相當于false。所以只要是括號里為非零,都是true!
答案是b

查看完整回答
反對 回復 2022-12-25
  • 2 回答
  • 0 關注
  • 251 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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