函数体内和函数体外数组的初始化问题

来源:互联网 发布:类是爱情2只有我知第一 编辑:程序博客网 时间:2024/04/29 19:39
如果没有显式对数组提供元素初值,则数组元素会像普通变量一样初始化:

  • 在函数体外定义的内置数组,其元素均初始化为0;
  • 在函数体内定义的内置数组,其元素无初始化;
  • 不管数组在哪里定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始化。
  • 举个例子:
  • string sa[10];int ia[10];int main(){string sa1[10];int ia1[10];}
    分析:
    string 是 “类” (英文叫 class),string sa[10]; string sa1[10];  是string类的 对象,自动 调用string类的默认构造函数,各元素初始化为空字符串。int ia[10];  在 main(){} 函数以外,是全局量,全局量自动初始化 为0,这是编译器的规定。int ia1[10]; 在 main(){} 函数以内,是局部量,局部量编译器不自动作初始化,其值不确定,这也是编译器的规定。

0 0