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

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

下列選項中無法輸出字符串“her”的是?

下列選項中無法輸出字符串“her”的是?

C
包小龍蝦 2018-08-28 14:09:03
無法輸出字符串“her”的是?A.char a[ ]={'h','e','r','\0'}; ? ? ? ? ? ? ? ? ? ? ? B.char a[ ]={'h','e','r',0};puts(a); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? puts(a);C.char a[4]={'h','e','r','0'-48}; ? ? ? ? ? ? ? ? ?D.char a[4]={'h','e',0,'r'};puts(a); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? puts(a);
查看完整描述

2 回答

?
onemoo

TA貢獻883條經驗 獲得超454個贊

你知道 C 語言字符串是“以 null 字符結尾的一串字符”,這個 null 字符通常寫作 '\0',對吧。 所以你知道 A 選項可以輸出 "her"。

回想一下用轉義方式表示字符的寫法,其中一種就是“\八進制數”,所以 '\0' 不是什么特殊表示法,這其實就是八進制數轉義為字符的寫法。既然 C 語言規定 '\0' 是 null 字符,也就是說 null 字符的值其實就是整型數 0。


那么初始化列表中的 0 就會將字符數組中相應元素賦為 null 字符。

B 選項的寫法和 A 選項有同樣的結果。

D 選項自然只能打印出 "he"

C 選項嘛。如果假定使用 ASCII 編碼,那么初始化列表最后一項 '0' 的編碼就是 48,相減后這一項是 0,其實和 B 選項是一樣的。當然也能打印出 "her"。? ? 這里如果我說題目不嚴謹可能有點吹毛求疵了,不過確實無法保證所有編碼中 '0' 的值都是 48。


最后提示下:雖然整型數 0 作為 char 類型就是 null 字符,但最好在你需要使用 null 字符時明確寫 '\0',不要依賴整型 0 自動轉型為 char。

查看完整回答
反對 回復 2018-09-08
?
北顧島城

TA貢獻14條經驗 獲得超9個贊

D,只能輸出he

查看完整回答
反對 回復 2018-08-28
  • 2 回答
  • 2 關注
  • 1261 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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