c++定义数组的方法

介绍

数组是一种非常常见的数据结构。它能够存储一组有序数据,并且在查找、读取、排序等操作上都具有很大的优势。在C++中定义数组有多种方法,接下来我们将学习这些方法。

使用一维数组

定义一维数组

最简单的一维数组定义如下:

int arr[5];

上述语句定义了一个由五个整型元素组成的数组,可以用下标访问数组每个元素,下标从0开始:

arr[0]=1;    //数组的第一个元素赋值为1.

arr[1]=2; //数组的第二个元素赋值为2.

另外,C++11新增了一种初始化数组的方式,可以使用以下方式来初始化数组:

int arr[5]={1,2,3,4,5};

这个语句在定义数组时就已经将其初始化为{1,2,3,4,5}了。

使用一维数组的注意事项

1.数组的下标是从0开始的。

2.定义数组时必须指定数组的大小,不能在程序运行过程中改变数组大小。

3.如果使用了C++11新增的一维数组初始化方式,那么定义数组时可以省略数组的大小,因为编译器会根据初始化列表推断数组的大小。

使用二维数组

定义二维数组

定义一个二维数组,需要指定两个大小,如下所示:

int arr[2][3];

上述语句定义了一个由两行三列的整型数组,可按照以下方式访问:

arr[0][0]=1;    //第一行第一个元素赋值为1  

arr[0][1]=2; //第一行第二个元素赋值为2

arr[0][2]=3; //第一行第三个元素赋值为3

arr[1][0]=4; //第二行第一个元素赋值为4

arr[1][1]=5; //第二行第二个元素赋值为5

arr[1][2]=6; //第二行第三个元素赋值为6

另外,您还可以使用以下方式初始化一个二维数组:

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

使用二维数组的注意事项

1.定义数组时必须指定行和列的大小,且大小必须是常数。

2.可以使用数组名作为指针使用。例如,arr是一个二维数组,将arr作为指针使用时,它指向该数组第一个元素的首地址。

动态分配数组

动态分配一维数组

动态分配一维数组的代码如下:

int *arr=new int[5];

delete[] arr; //释放数组(不要忘记释放内存)

上述代码创建一个整型数组,大小为5。创建数组后,您可以使用与静态数组相同的方法访问这个数组。

不要忘记释放释放动态分配的内存,否则会导致内存泄漏。

动态分配二维数组

动态分配二维数组需要使用二级指针。下面是一个使用动态分配的二维数组示例:

int **arr=new int*[2];

for(int i=0;i<2;i++){

arr[i]=new int[3];

}

for(int i=0;i<2;i++){

for(int j=0;j<3;j++){

arr[i][j]=1+(i*3+j);

}

}

for(int i=0;i<2;i++){

for(int j=0;j<3;j++){

cout<

}

cout<

}

for(int i=0;i<2;i++){

delete[] arr[i];

}

delete[] arr;

上述代码动态分配了一个2x3的整型数组,并将其初始化为[{1,2,3},{4,5,6}]。然后,程序输出了该数组的内容。最后,释放数组占用的内存。

动态分配数组的注意事项

1.动态分配数组时,必须在程序的某个位置手动释放内存。

2.对于一维数组和二维数组,不同的程序员使用不同的数组释放方法。某些程序员喜欢使用delete[]释放一维数组和二维数组,而另一些程序员则会使用delete[]释放二维数组的每一行,然后再使用delete[]释放指向这些行的指针数组。

总结

本文介绍了在C++中定义数组的方法。一维数组、二维数组以及动态分配的数组都有介绍。对于初学者,数组的定义可能有一些难度,但随着时间的推移和练习,您将能够理解和掌握该数据结构的使用。

后端开发标签