您的位置:首页 > 其它

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

2014-08-19 15:54 197 查看
如果没有显式对数组提供元素初值,则数组元素会像普通变量一样初始化:

在函数体外定义的内置数组,其元素均初始化为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(){} 函数以内,是局部量,局部量编译器不自动作初始化,其值不确定,这也是编译器的规定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: