注:本文在初始化方法中暂未写到指针。
1.数组初始化方法(未包括指针)
2.解释
对于全局数组定义:未初始化的全局变量会默认为0
对于局部数组定义
1.int value1[10];
value[i]的值不定,没有初始化
2.int value2[10] = {1,2};
value[0]和value[1]的值分别为1和2,而没有定义的value[i>1]则初始化为0
3.int value3[3][3]; // value[i][j]的值不定,没有初始化
3.局部数组定义示例
#include<iostream>
using namespace std;
int main()
{
int i,j;
//一维数组初始化
int value1[10]; // value[i]的值不定,没有初始化
int value2[10] = {1,2}; // value[0]和value[1]的值分别为1和2,而没有定义的value[i>1]则初始化为0
//二维数组初始化
int value3[3][3]; // value[i][j]的值不定,没有初始化
int value4[3][3] = {{1,1},{2}};//value[0][0,1]和value[1][0]的值初始化,其他初始化为0
cout<<"value1="; //输出value1
for ( i=0;i<10;i++)
{
cout<<value1[i]<<"\t";
}
cout<<endl;
cout<<"value2="; //输出value2
for ( i=0;i<10;i++)
{
cout<<value2[i]<<"\t";
}
cout<<endl;
cout<<"value3="; //输出value3
for ( i=0;i<3;i++)
{
for ( j=0;j<3;j++)
{
cout<<value3[i][j]<<"\t";
}
cout<<endl;
}
cout<<"value4="; //输出value4
for ( i=0;i<3;i++)
{
for ( j=0;j<3;j++)
{
cout<<value4[i][j]<<"\t";
}
cout<<endl;
}
return 0;
}
执行结果:
注:另外,关于在main函数中,下面的数组定义在vs2019中均正常,但在vc6.0中方法二却会报错的情况解释:
c++ 11 标准中初始化变量和数组使用独立的运算符,就是花括号 { },以前标准中的花括号只是一个定界符,包裹数据列表的。所以 VC6 不会识别第二句这种形式,但 VS2019 支持新标准,第二句是没有问题的
int value1[10] = { 0 }; //方法一
int value2[10] = { }; //方法二
参考文章:c++数组初始化方法