定义 {#定义}
数组是一块连续的内存区域,用于存储固定数量的元素
- 元素必须是相同的数据类型
- 数组的大小在声明时必须是已知的,并且在程序运行期间不可更改。
一维数组 {#一维数组}
定义方式 {#定义方式}
- 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}进行升序排序 {#示例:将数组-4,2,8,0,5,7,1,3,9-进行升序排序}
|---------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 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; } retrun 0; }
|
原理 {#原理}
建议打个断点一步步观察一下
i的每一步都能保证前i个元素里的最大值被放置在i+1的位置上
二维数组 {#二维数组}
定义方式 {#定义方式-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])