在网上搜索了一下之后,我得出的结论是,指定的初始值设定项不属于任何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++不应该支持这种类型的代码。

最佳答案

每个编译器通常都有自己的语言扩展。它对于g++和例如MS VC++是有效的。例如,在MS VC++中,您可以为每个语句使用语句。

关于c++ - 为什么指定的初始化程序可以在C++中工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19786813/

10-11 22:23
查看更多