带有空指针的 2D 指针数组 c++
Posted
技术标签:
【中文标题】带有空指针的 2D 指针数组 c++【英文标题】:2D array of pointers c++ with null pointers 【发布时间】:2019-12-17 03:06:39 【问题描述】:如何在 c++ 中声明一个二维指针数组并通过空指针对其进行初始化?
我尝试过这样做
int *arr[20][30]= nullptr;
【问题讨论】:
【参考方案1】:您可以aggregate initialize 初始化列表为空的数组,
int *arr[20][30] ;
// or
int *arr[20][30] = ;
(强调我的)
如果初始化子句的数量小于成员
and bases (since C++17)
或初始化列表完全为空,则剩余成员and bases (since C++17)
由空列表初始化by their default member initializers, if provided in the class definition, and otherwise (since C++14)
,按照通常的list-initialization规则(使用默认构造函数对非类类型和非聚合类执行值初始化,并为聚合执行聚合初始化)。
那么arr
的所有元素(即子数组int* [30]
)也将是aggregate-initialized,并且初始化列表为空,那么int*
类型的子数组的所有元素将是value-initialized ,
否则,对象为zero-initialized。
最后,int*
(内置类型)类型的元素都被零初始化为空指针。
如果
T
是标量类型,则对象的初始值是整数常量零explicitly converted 到T
。
【讨论】:
以上是关于带有空指针的 2D 指针数组 c++的主要内容,如果未能解决你的问题,请参考以下文章