0
我寫一個程序中,我初始化字符數組如下理解字符數組的初始化行爲
char array[28] = "\19TTTxxxxxxx Protocol\x00\x00\x00\x00\x00\x00\x00\x00";
但上述說法發出警告說,「初始化字符串太長」。但是當我將其更改爲\20
時,它不會給出警告。
有人可以解釋這裏發生了什麼嗎?
我寫一個程序中,我初始化字符數組如下理解字符數組的初始化行爲
char array[28] = "\19TTTxxxxxxx Protocol\x00\x00\x00\x00\x00\x00\x00\x00";
但上述說法發出警告說,「初始化字符串太長」。但是當我將其更改爲\20
時,它不會給出警告。
有人可以解釋這裏發生了什麼嗎?
"\20"
是一個八進制值爲020的單個字符。"\19"
是兩個字符,第一個是八進制值01,第二個是'9'
。
9不是八進制數字。
有關更多詳細信息,請查閱規範,部分** 6.4.4.4字符常量**。 –