【发布时间】:2013-09-26 14:17:37
【问题描述】:
C++ 中是否对数组元素的构造顺序有任何保证?
#include <iostream>
using namespace std;
struct A {
A() { cout << this << endl; }
};
int main()
{
cout << "[0] is " << new A[3];
}
打印出来
0x602010
0x602011
0x602012
[0] is 0x602010
暗示元素是按 [0]、[1] 和 [2] 的顺序构造的。语言是否保证该顺序?
【问题讨论】:
-
数组只是内存中的连续位置,数组中的每个元素都可以通过((数组的第一个元素的位置)+(下标 * sizeof(无论它是什么类型)))访问,所以我会说是的
-
是的。我会对此做出回答,但我必须寻找参考资料,而且我现在不想这样做。
标签: c++ arrays constructor