char arr [8]中的arr [3]是什么,因为它们是字符(初始化为零)还是字符串数组,将被视为非字符串数组。
char arr[8]={'a','b','c'}//what will be arr[3] and onwards \0 or 0.
答案 0 :(得分:1)
当声明具有显式大小的数组并对其进行初始化时,未显式初始化的数组成员将设置为0。
这在C standard的6.7.9p21节中指定:
如果用大括号括起来的列表中的初始化程序少于那里 是集合中的元素或成员,或者 字符串文字,用来初始化一个已知大小的数组 是数组中的元素,聚合的其余部分 应该与具有静态对象的对象隐式地初始化 存储期限。
因此arr[3]
,arr[4]
,arr[5]
,arr[6]
和arr[7]
均为0。
还要注意,0和'\0'
是源代码中相同值的两种不同表示形式。