数组作为C++编程的核心,可以说几乎100%的程序都要用到数组
数组其实就是用一段连续的内存空间来存储某一类元素的集合
它的特点是便于访问
1.1一维数组
一维数组Array在内存中的形式Size≥1
Address: 0x0F Name: Array[0] |
0x13 Array[1]
|
0x17 Array[2] |
...... ...... |
0x...... Array[Size-1] |
1.1.1一维数组的创建
通用形式
栈中创建TYPE Name[Size];
堆中创建TYPE *P_Array = new TYPE[Size];
TYPE 存储元素类型
Name 数组名
Size数组元素个数 Size∈N+
P_Array指针名
例:
int Array[10];//创建一个具有10个int元素的数组
char Array[5];//创建一个具有5个char元素的数组
WINCLASS Array[2];//创建一个具有2个元素都是WINCLASS对象的数组
double Array[3] = {1.1,1.2};//创建一个具有3个浮点型变量的数组并初始化赋值为1.1,1.2,0.0
float Array[] = {1.1f,1.2f,1.3f};//创建具有存储3个单精度浮点型变量的数组并分别赋值
int *P_Array = new int[10];//在堆中创建一个具有10个int型元素的数组
WINCLASS *P_Array = new WINCLASS[3];//在堆中创建一个存储3个WINCLASS对象的数组
WINCLASS** P_Array = new WINCLASS*[3];//在堆中创建一个能够存储3个WINCLASS对象地址的数组
delete []P_Array;//释放在堆中申请的内存空间
可以把一维数组看做是一个家庭然后对每个家里的人员进行编号,每一个人员就是数组的中的元素。
1.1.2一维数组的访问
int Demo[5];//创建数组方法1
int *Demo = new int[5];//创建数组方法2
CLASS My_struct
{
public:
int x;//成员变量x
int y;//成员变量y
};//创建结构体My_struct
My_struct T[3];//创建结构体数组
Demo[1] = 100;//将数组中的第2个变量赋值为100
Demo[4] = 500;//将数组中的第5个变量赋值为500
Demo[0] = 99;//将数组中的第1个变量赋值为99
T[1].x = 1000;//为对象T[1]中的x成员赋值1000;
*(Demo + 4) = 400;//指针法赋值Demo数组中的第5个变量
*Demo = 88;//指针法赋值Demo数组中的第一个变量
cout<<(*(T + 1)).y<<endl;//输出T[1].y的值
1.1.3一维数组的地址
以一维数组A[Size]