初始化数组中的每个变量以'0'与将它们全部初始化为 null 相同吗?

Is initializing every variable in an array to '0' the same as initializing all of them to null?

本文关键字:初始化 全部 null 数组 变量      更新时间:2023-10-16

我一直在学习如何在C++数组中使用 null 终止符,我一直想知道将数组初始化为 0 是否与将其初始化为 null 相同。

例如:

char setOfCharacters [15] = {''};

char setOfCharacters [15] = {0};

我知道将 setOfCharacter 初始化为 0 意味着数组中的每个内存位置都以 0 开头。将其初始化为 null 是否完成同样的事情?

事实上,这个初始化

char setOfCharacters [15] = {0};

相当于

char setOfCharacters [15] = { (char )0};

0 设置为 char 类型的对象也可以使用字符文字'' 写入。

以及两次初始化的结果

char setOfCharacters [15] = {''};

char setOfCharacters [15] = {0};

是数组中未显式初始化的所有其他元素都将初始化为零。

考虑到比较

'' == 0

总是产生true.此比较中的字符文字被提升为类型 int(在 C 字符常量中甚至具有 int 类型,因此'' 100% 等同于那里的0)。