这样的数组的默认值是什么:
char c[20];
顺便说一下,有没有?
答案 0 :(得分:16)
如果在命名空间范围内声明,则c
将具有静态存储范围,并且将零初始化,因此c的每个元素都将具有值'\0'
。
如果在函数中声明,则c
将不会被初始化。 c
元素的初始值将为不确定。
答案 1 :(得分:2)
未定义或技术性较差的语言 - 随机。
您的编译器(至少在调试模式下)可以将其设置为特定的值以进行测试。
当然,从量子理论的严格哥本哈根解释来看,它确实具有的价值是不确定的(在正确的意义上使用),直到你通过测量它来折叠波函数。
答案 2 :(得分:2)
这不是'未定义'。这是'不确定'。这些值根本不为人知。
答案 3 :(得分:1)
正如已经说过的那样 - 价值观是不确定的。但是,我必须提到,如果您的数组是静态的或全局的,则将值初始化为其默认值,这通常意味着它们将被初始化为零(或者在字符数组的情况下为'\ 0')。
编辑:正如诺亚罗伯茨所说,“不确定”这个词可能比“未定义”更合适(严格来说,数学上讲) - 所以建议被接受,我把这个词改为“不确定”。但我们大多数人都是工程师或程序员,而不是数学家(我想),类似的遗漏应该被宽恕:))