admin 管理员组

文章数量: 1087139


2024年4月22日发(作者:网站制作专业吗)

c++ new 数组

c++中有new函数

new可用来生成动态无名变量。

使用完动态无名变量后应该及时释放,要用到 delete 运算符。

int *p = new int; //此时指针p指向一个int对象,该对象没

有被初始化

int *p = new int(0); //指针p指向一个int对象,该对象被初

始化为0

int *p = new int[10]; //指针p指向一个int型数组,该数组

未被初始化

int *p = new int[10](0); //指针p指向一个int型数组,该数

组的元素都被初始化为0

new就是在程序的堆区申请一个没有命名的空间,你可以把new

看成是一个系统内置的函数,该函数返回一个指向没有命名的空间地

址(也就是指针).

另外,对于new申请的空间,程序员必须显示的删除该内存空间,

用delete删除,比如这样,delete p,和delete[] p,前者是删除单个

对象,后者是删除一个数组

当使用new运算符定义一个多维数组变量或数组对象时,它产生

一个指向数组第一个元素的指针,返回的类型保持了除最左边维数外

的所有维数。例如:

int *p1 = new int[10];

返回的是一个指向int的指针int*

int (*p2)[10] = new int[2][10];

new了一个二维数组, 去掉最左边那一维[2], 剩下int[10],

所以返回的是一个指向int[10]这种一维数组的指针int (*)[10].

int (*p3)[2][10] = new int[5][2][10]; new了一个三维数组,

去掉最左边那一维[5], 还有int[2][10], 所以返回的是一个指向二

维数组int[2][10]这种类型的指针int (*)[2][10].


本文标签: 数组 指向 返回 变量 对象