一维数组的初始化问题(函数体内与函数体外)

来源:互联网 发布:mac 隐藏dock 编辑:程序博客网 时间:2024/04/28 08:25

数组元素初始化时,若没有显式提供幸元素的值,则元素会被像普通变量一样初始化:

  1. 函数体外定义的内置类型数组(即内置类型的全局数组),元素初始化为0;
  2. 函数体内定义的内置类型数组,元素无初始化(注意,若只初始化部分元素,其后的元素此时也会被初始化为0);
  3. 如果不是内置类型,则不管其在哪定义,自动调用其默认构造函数为其初始化,若该类型无默认构造函数则会报错。

下面针对1和2的不同给出具体例子:
1.对条件1给出的例子,此时输出的a[0]为0,初始化为了0

#include <iostream>using namespace std;int a[6];//数组a定义在主函数外int main(){    cout << a[0] << endl;    return 0;}

2.对条件2给出的例子,此时输出的a[0]为一个未初始化的值

#include <iostream>using namespace std;int main(){    int a[6];//数组a定义在主函数内    cout << a[0] << endl;    return 0;}
阅读全文
0 0