存储一个固定大小的相同类型元素的顺序集合,所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

声明数组
double balance[10];

初始化数组
在 C++ 中,您可以逐个初始化数组,也可以使用一个初始化语句,如下所示:
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数

多维数组

声明:type name[size1][size2]...[sizeN];
声明一个 x 行 y 列的二维整型数组,形式如下:
type arrayName [ x ][ y ];

二维数组声明和定义同时进行时行数可以省略

初始化二维数组

多维数组可以通过在括号内为每行指定值来进行初始化。下面是一个带有 3 行 4 列的数组。
int a[3][4] = {
{0, 1, 2, 3} , /* 初始化索引号为 0 的行 */
{4, 5, 6, 7} , /* 初始化索引号为 1 的行 */
{8, 9, 10, 11} /* 初始化索引号为 2 的行 */
};

内部嵌套的括号是可选的,下面的初始化与上面是等同的:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};

指向数组的指针

数组名是一个指向数组中第一个元素的常量指针
balance 是一个指向 &balance[0] 的指针,即数组 balance 的第一个元素的地址
double *p;
double balance[10];
p = balance;
使用数组名作为常量指针是合法的,反之亦然。因此,*(balance + 4) 是一种访问 balance[4] 数据的合法方式
一旦您把第一个元素的地址存储在 p 中,您就可以使用 p、(p+1)、*(p+2) 等来访问数组元素。

定义一个[2][3]数组n, 元素为10,20,30,40,50,60
int (*p) [3];定义一个指针数组,如果令p=n;
则数组p=n数组的第1行。*p[0],*(p[0]+1),*(p[0]+2)为10,20,30

直接定义指针数组 :比如int *p=new int[10];