数组:一个存放了相同类型的数据元素集合
特点1:数组中每个数据元素都是相同的数据类型
特点2:数组是由连续的内存位置组成
1. 一维数组
a. 一维数组的定义方式
i. 数据类型 数组名 [数组长度]
ii. 数据类型 数组名 [数组长度] = {值1,值2…}
iii. 数据类型 数组名 [ ] = {值1,值2,值3…}
*如果在初始化数组时没有全部填充,则会用0填补剩余数据
*数组名的命名规范与变量名命名规范一致,不要和变量重名
*数组中下标是从0开始索引
b. 一维数组数组名
i. 可以统计整个数组在内存中的长度
ii. 可以获取数组在内存中的首地址
*数组名时常量,不可以赋值,因为数组名已经代表首地址了
*直接打印数组,可以查看数组所占内存的首地址,获取地址要使用地址符&
*对数组名进行sizeof,可以获取整个数组占内存空间的大小
iii. 可以通过数组大小除于数组首地址大小获取数组中元素的个数
例如arr[5],sizeof(arr)/ sizeof(arr[0])= 5
c. 冒泡排序
i. 作用:最常用的排序算法,对数组内元素进行排序
ii. 具体操作:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
重复以上的步骤,每次比较次数-1,直到不需要比较
*外循环:总比较轮数是元素个数-1
*内循环:每轮比较次数是元素个数-i-1
iii. 举例:将数组 { 4,2,8,0,5,7,1,3,9 } 进行升序排序
'''
int main() {
int arr[9] = { 4,2,8,0,5,7,1,3,9 };
for (int i = 0; i < 9 - 1; i++)
{
for (int j = 0; j < 9 - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < 9; i++)
{
cout << arr[i] << endl;
}
system("pause");
return 0;
}
'''
2. 二维数组
a. 定义方式
i. 数据类型 数组名[ 行数 ][ 列数 ];
int arr[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;
ii. 数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
int arr2[2][3] =
{
{1,2,3},
{4,5,6}
};
iii. 数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
int arr3[2][3] = { 1,2,3,4,5,6 };
iv. 数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};
int arr4[][3] = { 1,2,3,4,5,6 };
*在定义二维数组时,如果初始化了数据,可以省略行数
b. 二维数组数组名
i. 作用:
查看二维数组所占内存空间
获取二维数组首地址
*获取地址要使用地址符&
注:当时做笔记的时候中英文标点未分,大家见谅