C++入坑系列(四)复合数据类型之数组

本文探讨了C++中的静态和动态数组,包括它们的定义、创建及注意事项。静态数组在声明时固定长度,可能导致内存浪费。动态数组在运行时可改变长度,使用new和delete操作,需注意内存泄漏和越界访问。同时,文章提到了数组整体赋值的规则以及静态和动态数组的区别。
摘要由CSDN通过智能技术生成

前言

数组是一种数据结构,能够存储多个相同数据类型的数据。比如:存储全班同学的年龄,存储全班同学的身高等。虽然数组看起来很简单,但在实际应用中,还是有很多需要注意的地方。在本文中,列出了我所目前遇到的难点和重点,希望可以和大家分享分享。如有疏漏之处,还望各位读者可以进行补充。

静态数组

定义

顾名思义,静态数组便是数组长度固定的数组,我们需要在声明数组时,便指定数组的长度,且在程序运行过程中无法改变。比如:

int array1[10] = {
   0};//声明一个包含10个int类型数据的数组,且全部初始化为0
int array2[] = {
   1,2,3};//声明了一个包含3个int类型数据的数组,数组中的数据分别为:1,2,3
const int ARRAY_SIZE = 100;
double array3[ARRAY_SIZE] = {
   0};//声明一个包含100个int类型数据的数组,且初始化为0

如果我们试图在程序运行时更改数组的长度,如下:

int array_size = 10;
int array[array_size] = {
   0};

那么,编译器一定会报错,并指明数组的长度不能够是变量。
综上所述,对于静态数组而言,是在程序编译过程中,就需要完成为数组分配存储空间等工作,这也算是一种面向过程编程的一处体现。

缺陷

对于某些我们无法明确数组长度的应用场景,唯一的办法便是使数组的长度尽可能的大一点,尽可能可以容纳所有的数据。但这样便可能会导致内存的浪费,而且扩展性也非常低下,看起来十分笨拙。

动态数组

定义

顾名思义,动态数组是可以在程序运行期间,对数组的长度进行改变。换句话说,我们可以在程序的运行过程中,指定数组的长度,以满足不同的需求。
那么,我们如何实现动态更改数组长度的目的呢?在C语言中,我们一般使用malloc函数和free函数,实现内存空间的动态分配。但是在C++中,可以使用更好的new运算符和delete运算符,完成上述功能。
相对应的是,malloc函数和new运算符的作用均是在堆空间开辟一个新的内存空间,free函数和delete运算符则是在需要时及时释放刚才开辟的内存空间,避免内存泄漏。下面,我们来探讨如何使用new和delete运算符实现动态数组。

创建动态数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值