创建数组
数组创建声明指出以下这三点:
(1)元素值的类型 ;
(2)数组的名字;
(3)数组元素的个数.
注意:int arr[ArraySize]中ArraySize的取值只能为以下几种:
(1)普通整型常数,比如1,2等;
(2)宏定义标识,如下:
#define MAXSIZE 100
int arr[MAXSIZE] = { 0 } ;
(3)const值, 如下:
const int size_arr = 1;
int arr[size_arr] = { 0 };
(4)常量表达式,比如sizeof(double)*3.
数组初始化
数组初始化规则:
(1)只有定义数组的时候才能初始化,此后不能使用;
//正确初始化
int arr1[3]={1,6,10};
//以下为错误的初始化
int arr2[2];
arr2[2]={0,3};
(2)不能将一个数组赋给另一个数组;
//错误示范
int arr1[3]={1,2,3};
int arr2[3];
arr2=arr1;
(3)初始化数组时,给的值可以少于数组元素个数,这时其他元素设为0;
//arr的前两个元素为1,6,后两个元素为零
int arr[4]={1,6};
(4)初始化时方括号“[ ]”内可以为空,这个时候你给多少值,数组长度就为多少。
//此时数组长度为3,当然这种初始化方式并不好,尽量不要使用
short array[]={1,3,5};
C++11后新增数组初始化方法
C++11使用大括号 “{ }” 初始化,即列表初始化作为一种通用的初始化方式。
(1)首先,初始化的时候可以省略等号“=”;
double earnings[5]{1.28e6, 1.35e6, 1.32e6, 1.22e6, 1.36e6};
(2)大括号内可以不包含任何东西,表示都设为零;
unsigned int counts[10]{};
(3)列表初始化不能缩窄转换(大类型赋给小类型时,产生数据赋值异常)。
//3.0为double类型,显然赋给int时出现缩窄转换,时错误的
int arr[3]{1,22,3.0};
//1111111超出char取值范围,错误
char symbol_toy[2]{ 'a', 1111111 };