数组

时间:2015-10-14 13:13:34

标签: c++ arrays

我可以请某人看看我的概念是否正确吗?

假设我定义了两个数组:int integer[4];char characters[4];

  1. 如果我没有初始化数组元素并且数组是在函数中定义的,那么数组元素的值将是不确定的(即未知/随机)。

  2. 如果我没有初始化数组元素并且数组是在全局范围内定义的,那么int数组元素的值将0和char数组元素的值将是'\0'

  3. 我的观念是否正确?谢谢!

1 个答案:

答案 0 :(得分:6)

Per§8.5/ 12

  

如果没有为对象指定初始化程序,则默认初始化该对象;如果没有执行初始化,则   具有自动或动态存储持续时间的对象具有不确定的值。 [   注意:   具有静态或对象的对象   线程存储持续时间为零初始化,请参阅    3.6.2   。    - 结束说明   ]

全局变量和静态变量都属于注释,因此它们将被初始化为零。根据§8.5/ 6,

  

要   零初始化   类型的对象或引用   Ť   手段:   < ...>

     
      
  • 如果   Ť   是一种标量类型(   3.9   ),将对象初始化为通过转换整数文字获得的值   0   (零)到   Ť   

  •   
  • 如果   Ť   是一个数组类型,每个元素都是零初始化的;

  •   

所以,你的假设是正确的。