三、关于c++的复合类型(一)

数组

1.什么是数组?数组是一种数据格式,存储多个同类型的值。

2.数组的声明

   格式:类型 数组名称[元素个数];

   如:int a[10];

3.C++中使用带索引的方括号表示法来指定数组元素,如a[0],a[1]...表示a数组的第一个,第二个元素

4.初始化

4.1如果只声明不对数组进行初始化的话,数组元素的值是不确定的值

4.2初始化(使用列表)

     int a[3] = {1,2,3};

4.3但是使用列表初始化只能在声明的时候使用,声明后不允许使用列表赋值

     如:

     int a[3];

     a[3] = {1,2,3};

4.4可以使用带索引的方括号表示法表示数组元素并且赋值

     如:

     int a[3];

     a[0] = 1;

     a[1] = 2;

     a[2] = 3;

4.5当初始化数组时,提供的值少于数组的元素数目,其他元素会自动设置为0,而不是像没有初始化时为不确定的值

     如:

     int a[4] = {1,2,3};

     此时数组a第四个元素a[3]的值会自动设置为0

     所以如果要将所有元素设置为0,只需要显式的将第一个元素初始化为0,其他会自动设置为0

     int a[100] = {0};

     这样数组a的全部元素将设置为0

     而

     int a[100] = {1};

     只是把第一个元素设置为1,其他元素全部为0,而不是把全部元素设置为1

4.6初始化时[]为空,编译器会根据列表中的个数计算元素的个数

     int a[] = {1,3,5,8};  // 此时a数组有四个元素

4.7在C++11中还提出新的功能

4.7.1可以不在{}中包含任何东西,这将把所有元素设置为0

        如:

        int a[100] = {}

4.7.2初始化数组时,=可以省略

        int a[3] {1,2,3}

4.7.3列表初始化禁止缩窄转换

        long plifs[] = {25,92,3.0};  //编译不通过,3.0(浮点数)转换成整数(long),会去掉小数部分,不行

        long slifs[] = {'h','i',1122011,'\0'}; //编译不通过,1122011超出char范围

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章