nik*_*yas 6 c++ variable-length-array gcc-extensions clang-extensions
我一直认为c ++中不允许使用变长数组(参考:为什么变量长度数组不是C++标准的一部分?).但是为什么这段代码编译和工作?
#include <iostream>
using namespace std;
int main () {
int n;
cin >> n;
int a[n];
for (int i=0; i<n; i++) {
a[i] = i;
}
for (int i=0; i<n; i++) {
cout << a[i] << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
当前的 C++ 标准不要求编译器支持 VLA。但是,允许编译器供应商支持 VLA 作为扩展。例如,GCC >= 4.7 确实如此。
最初提议 VLA 将出现在 C++14 中,但该提议没有成功。它们最终也没有出现在 C++17 中。
| 归档时间: |
|
| 查看次数: |
809 次 |
| 最近记录: |