解释阵列(C )的文档



根据https://en.cppreference.com/w/cpp/language/defeault_initialization

&quot'如果t是数组类型,则数组的每个元素是默认限制"

我误解了某些东西,因为我们都知道http://www.cplusplus.com/doc/tutorial/arrays/

默认情况下,本地范围的常规数组(例如,那些声明的范围在函数中(是非初始化的。这意味着它都不元素设置为任何特定值;他们的内容是在声明阵列的点不确定。

...

初始化器甚至没有值,只有牙套:这会创建一个五个int值的数组,每个数字以零

的值初始化。

第一个来源如何准确和我在哪里可以找到更多可靠的文档来解决该数组默认初始化的这种行为?

您需要阅读整个内容。我编号了:

默认初始化的效果是:

  1. 如果t是非pod(直到C 11(类型,则考虑构造函数并对空参数列表进行过载分辨率。所选的构造函数(这是默认构造函数之一(,以提供新对象的初始值;

  2. 如果t是数组类型,则数组的每个元素均已默认initialized;

  3. 否则,什么也没做:具有自动存储持续时间(及其子对象(的对象被初始化为不确定的值。

这是一个递归陈述。数组中的每个元素均被默认为单位化。这意味着取决于元素类型。如果元素类型是某种东西1.将适用于每个元素,则调用默认构造函数。但是,如果元素类型是int,则3。发生。它留有不确定的值。

https://learn.microsoft.com/en-us/cpp/cpp/cpp/new-operator-cpp?view=vs-2019

新操作员是参考MSDN。

基本上,在新操作员内部,它由一个由Malloc分配和初始化的函数组成。这是一个用新功能敲击的函数。

最新更新