为什么下面的程序编译不过,是编译器的问题还是vs2017的问题啊

#include
#define MONTHS 12
int main(void)
{
int days[MONTHS] = { 31,28,[4] = 31,30,31,[1] = 29 };
int i;

for (i = 0; i < MONTHS; i++)
    printf("%2d  %d\n", i + 1, days[i]);

getchar();
return 0;

}
1>d:\c\10\project5\project5\源.cpp(5): error C2143: 语法错误: 缺少“]”(在“常数”的前面)
1>d:\c\10\project5\project5\源.cpp(5): error C3260: “常数”: 跳过 lambda 主体之前的意外标记

http://tieba.baidu.com/p/1005240654

你大括号里的中括号不可以这样赋值