定义
数组是一块连续的内存区域,用于存储固定数量的元素
- 元素必须是相同的数据类型
- 数组的大小在声明时必须是已知的,并且在程序运行期间不可更改。
一维数组
定义方式
- int a[10];
- int a[2]={1,2};
- int a[]={1,2};
数组名不能与变量名重名
数组名用途
统计整个数组在内存中的长度
1
2
3
4
5
6
7//数组名用途
//1、可以获取整个数组占用内存空间大小
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
cout << "整个数组所占内存空间为: " << sizeof(arr) << endl;
cout << "每个元素所占内存空间为: " << sizeof(arr[0]) << endl;
cout << "数组的元素个数为: " << sizeof(arr) / sizeof(arr[0]) << endl;获取数组在内存中的首地址
1
2
3
4
5
6//2、可以通过数组名获取到数组首地址
cout << "数组首地址为: " << (int)arr << endl;
cout << "数组中第一个元素地址为: " << (int)&arr[0] << endl;
cout << "数组中第二个元素地址为: " << (int)&arr[1] << endl;
//arr = 100; 错误,数组名是常量,因此不可以赋值
数组名是常量,不可以赋值
冒泡排序
作用:最常用的排序算法,对数组内元素进行排序
- 比较相邻的元素,如果第一个比第二个大,就交换他们两个
- 对每一对相邻元素做相同的工作,执行完毕后,找到第一个最大值
- 重复以上的步骤,每次比较次数-1,直到不需要比较
示例:将数组{4,2,8,0,5,7,1,3,9}进行升序排序
1 |
|
原理
建议打个断点一步步观察一下
i的每一步都能保证前i个元素里的最大值被放置在i+1的位置上
二维数组
定义方式
数据类型 数组名[行数][列数]
- int a[2][3];
- int a[2][3]=
{
{1,2,3},
{4,5,6}
}; - int a[2][3]={1,2,3,4,5,6};
- int a[][3]={1,2,3,4,5,6};
在定义二维数组时,如果初始化了数据,可以省略行数
大小
二维数组一行大小:
sizeod(a[0])