为什么这个c ++程序会编译?

时间:2016-12-28 20:47:44

标签: c++ arrays compilation

据我所知,c ++编译器不允许你使用变量初始化一个数组,但是这个程序在我的计算机上编译并运行,为什么会这样?

// this should not compile because there is a variable in the array declaration

#include <iostream>

int main(){
    int x = 5;
    int ar[x];
    printf("hello world\n");
}

2 个答案:

答案 0 :(得分:3)

  

在C ++中,可变长度数组不合法。 G ++允许这样做   “扩展”(因为C允许),所以在G ++中你可以这样做。

进一步检查此answer / answer

答案 1 :(得分:-3)

数组的大小可能不是变量。