当前位置:  开发笔记 > 编程语言 > 正文

为什么以及如何使用C++允许使用动态值创建编译时数组

如何解决《为什么以及如何使用C++允许使用动态值创建编译时数组》经验,为你挑选了1个好方法。

在编写一些代码时,我意识到我的一个代码工作,根据我的理解不应该工作.代码是

int main() {
    int val;
    cin>>val;
    int array[val];
}

不仅如此,即使是下面的代码也能正常工作

 int main() {
        int valone = rand();
        int valtwo = rand();
        int array[valone][valtwo];
    }

我总是理解静态数组需要常量值,或编译器在编译期间可以推导出的值.

最近的C++ 11/14规范是否有任何变化,或者从一开始就适用于C++.

注:Visual Studio的编译器提供了这种情况的一个错误,但g++clang成功编译上面的代码

Cody Gray.. 7

它是一个可变长度的数组.

它们由C99支持,GCC和Clang都支持它们作为非标准扩展在C++中使用.(它们不是 C++语言的一部分.)MSVC不支持C99,因此根本不支持它们.

在标准C++中,您可以使用std::vector.



1> Cody Gray..:

它是一个可变长度的数组.

它们由C99支持,GCC和Clang都支持它们作为非标准扩展在C++中使用.(它们不是 C++语言的一部分.)MSVC不支持C99,因此根本不支持它们.

在标准C++中,您可以使用std::vector.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有