数组中的默认值

时间:2011-01-16 20:47:11

标签: c++ arrays

这样的数组的默认值是什么:

char c[20];

顺便说一下,有没有?

4 个答案:

答案 0 :(得分:16)

如果在命名空间范围内声明,则c将具有静态存储范围,并且将零初始化,因此c的每个元素都将具有值'\0'

如果在函数中声明,则c将不会被初始化。 c元素的初始值将为不确定

答案 1 :(得分:2)

未定义或技术性较差的语言 - 随机。

您的编译器(至少在调试模式下)可以将其设置为特定的值以进行测试。

当然,从量子理论的严格哥本哈根解释来看,它确实具有的价值是不确定的(在正确的意义上使用),直到你通过测量它来折叠波函数。

答案 2 :(得分:2)

这不是'未定义'。这是'不确定'。这些值根本不为人知。

答案 3 :(得分:1)

正如已经说过的那样 - 价值观是不确定的。但是,我必须提到,如果您的数组是静态的或全局的,则将值初始化为其默认值,这通常意味着它们将被初始化为零(或者在字符数组的情况下为'\ 0')。

编辑:正如诺亚罗伯茨所说,“不确定”这个词可能比“未定义”更合适(严格来说,数学上讲) - 所以建议被接受,我把这个词改为“不确定”。但我们大多数人都是工程师或程序员,而不是数学家(我想),类似的遗漏应该被宽恕:))