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

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
樓主你好!printf()函數返回值為整型。若成功則返回輸出的字符數,輸出出錯則返回負值。這里題目返回整數1。由于'0'的ascii碼為48,屬于非0!while()函數括號里的非0相當于true,0相當于false。所以只要是括號里為非零,都是true!
答案是b
- 2 回答
- 0 關注
- 251 瀏覽
添加回答
舉報
0/150
提交
取消