[英]Interpreting documentation on arrays (C++)
根据https://en.cppreference.com/w/cpp/language/default_initialization
“如果T是数组类型,则数组的每个元素都将默认初始化”
我是否误解了,因为我们都知道http://www.cplusplus.com/doc/tutorial/arrays/
默认情况下,局部范围的常规数组(例如,在函数中声明的常规数组)未初始化。 这意味着其元素均未设置为任何特定值。 在声明数组时,它们的内容尚未确定。
...
初始化程序甚至可以没有任何值,只需括号即可:这将创建一个包含五个int值的数组,每个int值均初始化为零
第一个来源如何准确?在哪里可以找到更多可信的文档来解决阵列默认初始化的这种现象?
您需要阅读整个内容。 我给他们编号:
默认初始化的效果是:
如果T是非POD(直到C ++ 11)类类型,则考虑构造函数,并针对空参数列表对其进行重载解析。 调用选定的构造函数(它是默认的构造函数之一)为新对象提供初始值。
如果T是数组类型,则数组的每个元素都将默认初始化;
否则,什么也不做:具有自动存储期限的对象(及其子对象)被初始化为不确定的值。
这是一个递归语句。 数组中的每个元素都是默认初始化的。 这意味着取决于元素类型。 如果元素类型适用于1.,则为每个元素调用默认构造函数。 但是,如果元素类型为int
,则会发生3.。 它具有不确定的值。
https://docs.microsoft.com/en-us/cpp/cpp/new-operator-cpp?view=vs-2019
新的操作员是参考MSDN。
基本上,在new运算符内部,它包含一个要由malloc分配和初始化的函数。 这是一个与新功能重叠的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.