【发布时间】:2015-12-20 06:42:12
【问题描述】:
在 C 中,人们注意到这两种指定的语法之间存在差异。观察
char test[5] = {"c", "o", "o", "l", "\0"}; // with quotation
带来错误:
error: (near initialization for 'test')
error: excess elements in char array initializer
error: (near initialization for 'test')
error: excess elements in char array initializer
error: (near initialization for 'test')
error: excess elements in char array initializer
error: (near initialization for 'test')
在哪里
char test[5] = {'c', 'o', 'o', 'l', '\0'}; // with apostrophe
编译良好。这是什么原因?
【问题讨论】:
-
'x'是一个字符文字。"x"是一个包含一个字符的字符串字面量。 -
单个字符与字符串(字符序列)。