1.一维数组的初始化
①在定义数组时对全部数组元素赋予初值。
int a[10]={0,1,2,3,4,5,6,7,8,9}
②可以只给一部分元素赋值
int a[10]={0,1,2,3,4}
③在对全部数组元素赋初值时,可以不指定数组的长度。
int a[ ]={0,1,2,3,4}
2.二维数组初始化
①按行给二维数组全部元素赋初值
int a[2][3]={ {1,2,3},{4,5,6}}
②可以将所有数据写在一个花括号内,按数组排列的顺序对全部元素赋初值。
int a[2][3]={ 1,2,3,4,5,6}
③可以对部分元素赋初值,其他系统自动补0
int a[2][3]={{1},{2},{3}};
④如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第1维的长度可以不指定,但第2维的长度不能省。
int a[ ][3]={1,2,3,4,5,6}
3.字符数组的初始化
只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值。
如:char c[5];
c={'C','h','i','n','a'} //错误,不能对整个数组一次赋值
如果已经定义了a和b是具有相同类型和长度的数组,且b数组已经初始化。
如:a=b; //错误,不能对数组整体赋值
a[0]=b[0];
可以用字符串常量来初始化字符数组
char str[ ]={"I am happy"};
可以省略花括号,写成
char str[ ]="I am happy";
注意:数组的长度不是10,而是11(因为字符串常量的最后由系统加上一个'\0')
上面的初始化与下面的等价:
char str[ ]={'I',' ','a','m',' ','h','a','p','p','y','\0'};
如果有:
char str[10]="china";
数组str的前5个元素为'C','h','i','n','a',第6个元素为'\0',后4个元素为空字符。
5.字符数组的输入输出
1.输出的字符不包括结束符'\0'
2.输出字符串时,cout流中用字符数组名,而不是数组元素名
cout<<str;
3.如果数组长度大于字符串实际长度,输出遇'\0'结束
4.如果一个字符数组中包含一个以上‘\0',则遇到第一个‘\0'时输出就结束
5.C++提供了cin流中的getline函数,用于读入一行字符(或一行字符中前若干个字符),参考c++程序设计13.3.2节