2 回答

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
你知道 C 語言字符串是“以 null 字符結(jié)尾的一串字符”,這個(gè) null 字符通常寫作 '\0',對(duì)吧。 所以你知道 A 選項(xiàng)可以輸出 "her"。
回想一下用轉(zhuǎn)義方式表示字符的寫法,其中一種就是“\八進(jìn)制數(shù)”,所以 '\0' 不是什么特殊表示法,這其實(shí)就是八進(jìn)制數(shù)轉(zhuǎn)義為字符的寫法。既然 C 語言規(guī)定 '\0' 是 null 字符,也就是說 null 字符的值其實(shí)就是整型數(shù) 0。
那么初始化列表中的 0 就會(huì)將字符數(shù)組中相應(yīng)元素賦為 null 字符。
B 選項(xiàng)的寫法和 A 選項(xiàng)有同樣的結(jié)果。
D 選項(xiàng)自然只能打印出 "he"
C 選項(xiàng)嘛。如果假定使用 ASCII 編碼,那么初始化列表最后一項(xiàng) '0' 的編碼就是 48,相減后這一項(xiàng)是 0,其實(shí)和 B 選項(xiàng)是一樣的。當(dāng)然也能打印出 "her"。? ? 這里如果我說題目不嚴(yán)謹(jǐn)可能有點(diǎn)吹毛求疵了,不過確實(shí)無法保證所有編碼中 '0' 的值都是 48。
最后提示下:雖然整型數(shù) 0 作為 char 類型就是 null 字符,但最好在你需要使用 null 字符時(shí)明確寫 '\0',不要依賴整型 0 自動(dòng)轉(zhuǎn)型為 char。
- 2 回答
- 2 關(guān)注
- 1234 瀏覽
添加回答
舉報(bào)