gpt4 book ai didi

c++ - 在 c++/c 中用变量定义数组的长度

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:37 26 4
gpt4 key购买 nike

我正在读一本书说在 C++ 中你不能这样做:

int array_size = 3;
int array[array_size];

然后我用 gcc 尝试了它,但它根本没有提示(异常警告未使用的 array)。

我还读到了 this question .第 4 个答案说你可以使用这样的东西:让我感到困惑。谁能帮忙解释一下?

谢谢,G

最佳答案

如果您使用的是 C++ 编译器,它可以工作,因为大多数 C++ 编译器都提供支持 Variable Length arguments(VLA) 的编译器扩展。

如果您使用的是 C 编译器,它可以工作,因为标准允许它。


在 C++ 中,C++ 标准不允许使用 VLA,因此通过编译器扩展使用它会使您的代码不可移植。
C++ 提供 std::vector std::array(C++11),它们分别满足使用可变长度数组或 c 风格数组的所有要求,您应该使用它们。

请注意,由于 C99 标准,VLA 在 C 中是允许的。

关于c++ - 在 c++/c 中用变量定义数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9866614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com