如果我有这样的C字符串初始化:
char a[5]={'a','b','c'};
这有效吗? 什么是[3]和[4]的价值? 空字符是否自动附加到?
的末尾谢谢!
答案 0 :(得分:5)
它们将被初始化为值0.当您保留一些未初始化的元素时,会自动添加Null。
答案 1 :(得分:0)
这取决于您所关注的C
标准:
如果您严格遵守C90
,那么它禁止您这样做,感谢BLUEPIXY的启示
然后,这些标准有一些扩展,使您可以编译此代码而不会出现任何错误,在这种情况下,这很好。
因此,如果是后者,C
语言会将rest初始化为零。
char a[5] = {}
将所有索引初始化为零。
答案 2 :(得分:0)
如果在函数内调用a [3]和[4]将是未初始化的。也就是说,它们将成为当时记忆中的任何东西。
如果在函数外声明,则[3]和[4]将设置为0。
答案 3 :(得分:-1)
根据实现情况,我认为数组的最后一个元素要么完全是随机的,要么只是0的等价物,甚至是其他元素,但除了那个数组之外,初始化也就好了。