我可以请某人看看我的概念是否正确吗?
假设我定义了两个数组:int integer[4];
和char characters[4];
如果我没有初始化数组元素并且数组是在函数中定义的,那么数组元素的值将是不确定的(即未知/随机)。
如果我没有初始化数组元素并且数组是在全局范围内定义的,那么int
数组元素的值将0
和char数组元素的值将是'\0'
。
我的观念是否正确?谢谢!
答案 0 :(得分:6)
Per§8.5/ 12
如果没有为对象指定初始化程序,则默认初始化该对象;如果没有执行初始化,则 具有自动或动态存储持续时间的对象具有不确定的值。 [ 注意: 具有静态或对象的对象 线程存储持续时间为零初始化,请参阅 3.6.2 。 - 结束说明 ]
全局变量和静态变量都属于注释,因此它们将被初始化为零。根据§8.5/ 6,
要 零初始化 类型的对象或引用 Ť 手段: < ...>
如果 Ť 是一种标量类型( 3.9 ),将对象初始化为通过转换整数文字获得的值 0 (零)到 Ť
如果 Ť 是一个数组类型,每个元素都是零初始化的;
所以,你的假设是正确的。