它会在末尾放置0还是\ 0?

时间:2018-10-25 18:19:48

标签: c arrays pointers

char arr [8]中的arr [3]是什么,因为它们是字符(初始化为零)还是字符串数组,将被视为非字符串数组。

char arr[8]={'a','b','c'}//what will be arr[3] and onwards \0 or 0.

1 个答案:

答案 0 :(得分:1)

当声明具有显式大小的数组并对其进行初始化时,未显式初始化的数组成员将设置为0。

这在C standard的6.7.9p21节中指定:

  

如果用大括号括起来的列表中的初始化程序少于那里   是集合中的元素或成员,或者   字符串文字,用来初始化一个已知大小的数组   是数组中的元素,聚合的其余部分   应该与具有静态对象的对象隐式地初始化   存储期限。

因此arr[3]arr[4]arr[5]arr[6]arr[7]均为0。

还要注意,0和'\0'是源代码中相同值的两种不同表示形式。