了解char数组初始化行为

时间:2013-10-10 00:20:36

标签: c arrays

我正在编写一个程序,我正在初始化一个char数组,如下所示

char array[28] = "\19TTTxxxxxxx Protocol\x00\x00\x00\x00\x00\x00\x00\x00";

但是上面的语句给出了“初始化字符串太长”的警告。但是当我将其更改为\20时,它不会发出警告。

有人可以解释这里发生的事情吗?

1 个答案:

答案 0 :(得分:2)

"\20"是一个八进制值为020的单个字符。"\19"是两个字符,第一个是八进制值01,第二个是'9'

9不是八进制数字。