51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【C++学习】数组

定义 {#定义}

数组是一块连续的内存区域,用于存储固定数量的元素

  • 元素必须是相同的数据类型
  • 数组的大小在声明时必须是已知的,并且在程序运行期间不可更改。

一维数组 {#一维数组}

定义方式 {#定义方式}

  • int a[10];
  • int a[2]={1,2};
  • int a[]={1,2};

数组名不能与变量名重名

数组名用途 {#数组名用途}

  1. 统计整个数组在内存中的长度

    |-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 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; |

  2. 获取数组在内存中的首地址

    |---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 | //2、可以通过数组名获取到数组首地址 cout << "数组首地址为: " << (int)arr << endl; cout << "数组中第一个元素地址为: " << (int)&arr[0] << endl; cout << "数组中第二个元素地址为: " << (int)&arr[1] << endl; //arr = 100; 错误,数组名是常量,因此不可以赋值 |

数组名是常量,不可以赋值

冒泡排序 {#冒泡排序}

**作用:**最常用的排序算法,对数组内元素进行排序 {#作用:最常用的排序算法,对数组内元素进行排序}

  1. 比较相邻的元素,如果第一个比第二个大,就交换他们两个
  2. 对每一对相邻元素做相同的工作,执行完毕后,找到第一个最大值
  3. 重复以上的步骤,每次比较次数-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}

数据类型 数组名[行数][列数]

  1. int a[2][3];
  2. int a[2][3]=
    {
    {1,2,3},
    {4,5,6}
    };
  3. int a[2][3]={1,2,3,4,5,6};
  4. int a[][3]={1,2,3,4,5,6};

在定义二维数组时,如果初始化了数据,可以省略行数

大小 {#大小}

二维数组一行大小:
sizeod(a[0])

赞(1)
未经允许不得转载:工具盒子 » 【C++学习】数组