3.2.2 初始化一维数组

    代码3.1 通过用户输入数据对数组中的运算进行赋值,其实,在声明一个数组的同时也可以对各元素进行初始化,初始化表达式按元素的顺序依次写在一对花括号中,元素中间用逗号隔开,代码3.2与代码3.1是等价的。

    代码3.2 声明一个数组的同时对其初始化ArraySample2


    <———————————————-文件名:example302.cpp———————————-> 01 #include<iostream> 02 int main() 03 { 04 using namespace std; 05 int age[]={95,66,73,82,81,90,67,64,79,98};//创建一个int型数据,并初始化,大小为10 06 int sum=0;//声明int型变量sum,代表总和 07 float aver;//声明一个float型变量aver,表示平均成绩 08 for(int i=0;i<10;i++) 09 sum+=age[i];//求总和 10 aver=sum/10. 0;//求平均成绩 11 cout<<"这10个人的平均成绩为:"<<aver<<endl; 12 return 0; 13 }

    【代码解析】代码第5行,表示在声明一个数组的同时也对各元素进行初始化。这样在后面的程序中就可以直接使用,而不用再赋值。

    输出结果如下所示。


    这10个人的平均成绩为:79.5

    代码3.2 中第5行并没有指定数组的大小,这在C++中是合法的,编译器会根据初始值的个数自动决定数组的大小。

    注意

    虽然在声明时对数组进行初始化可以不指定数组的大小,但在声明时将数组大小显式注明是个很好的习惯。

    在声明数组时对数组进行初始化,也可以只给出部分元素的初始值,C++编译器根据花括号中的数值对前面的元素依次进行初始化,例如语句“int age[10]={95,66,73};”在声明一个有10个元素的int型数组的同时,对前3个元素(age[0]、age[1]和age[2])初始化(赋值)为95、66和73,其他的元素初始化为0,应当注意,此时应指定数组的大小,否则,如果写成“int age[]={95,66,73};”,编译器会自动定为所声明的数组长度为3。

    对一个大数组而言,如果要在数组声明时把所有元素初始化为0,那么可采用如“int name[1000]={0}”的形式;若在声明一个可存放1000个int型元素的数组时,只对第一个元素初始化为0,则编译器会自动将其他元素也初始化为0。