经过一段时间在网上的搜索,我得出结论:指定初始化器并不是任何C++标准的一部分。然而,在使用g++(4.7.0)编译此代码时,它仍然可以正常运行。
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int test[2][2] ={
[0]={1,2},
[1]={3,4},
};
for (int x = 0; x<2;x++)
{
for (int y = 0; y<2; y++)
{
cout << test[x][y] << endl;
}
}
return 0;
}
它将编译并正常运行。
我是否遗漏了什么?根据我所读的所有内容,C++不应该支持这种类型的代码。