【C++学习】数组
Published in:2024-08-10 | category: C++
Words: 678 | Reading time: 2min | reading:

定义

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

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

一维数组

定义方式

  • 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}进行升序排序

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

Prev:
【C++学习】函数
Next:
【C++学习】程序流程结构