1、C++数组定义中的类型名可以是内置数据类型或类类型;除引用外,数组元素的类型还以可是任意的复合类型;没有所有元素都是引用的数组。

2、数组的维数必须用值大于等于一的常量表达式定义。此常量表达式只能包含整型字面值常量、枚举常量或用常量表达式初始化的整形const对象。非const变量以及要到运行阶段才知道其值的const变量都不能用于定义数组的维数。

例如,以下OK

const unsigned size1 = 512, size2 = 3;

char chaName[size1];

int strNum[size2 + 1];

以下NO

int size3 = 9;

const unsigned size4 = get_size();

3、数组的初始化

(1)显式初始化

  char ch1[3] = {'a', 'b', 'c'};//3维

  char ch2[] = "abc";//4维,空字符null,等价于,char ch2[] = {'a', 'b', 'c', '\0'};

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

  int j[3] = {1};//其余初始化为0,还区分函数体内和函数体外????????

4、

string 的下标类型 string::size_type;

数组的下标类型 size_t;

vector的下标类型 vector::size_type;