Bootstrap

C++学习——数组

1、数组定义方式,以下两种的区别在于生存期不同。

1)int example[5];

在栈上创建的,当我们达到主函数最后的花括号时,它就会被销毁,因为跳出了作用域范围

2)int* another=new int[5];

delete[] another;

在堆上创建的,直到程序把它销毁之前,它都是处于活动状态的,所以我们需要使用delete关键字来删除。

2、我们何时使用栈?何时使用堆呢?

最大的原因在于生存期不同,用new分配的内存,它将一直存在,直到我们删除它

在栈上创建的数组,我们可以很容易的计算数组的大小

int size=sizeof(example)/sizeof(int)

即可得到数组的大小,但是用堆创建的数组不可以通过这种方式计算数组大小

于是我们可以用std::array来创建数组,需要#include<array>头文件

然后std::array<int,5> another

int表示数组中的元素类型,5表示数组的大小

;