gpt4 book ai didi

c++ - 数组声明中的常量表达式

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:43 24 4
gpt4 key购买 nike

C++ Primer

Array dimension must be known at compile time, which means that the dimension must be a constant expression

单独指出

unsigned count = 42;           // not a constant expression
constexpr unsigned size = 42; // a constant expression

然后我希望下面的声明失败

a[count];                      // Is an error according to Primer

然而,事实并非如此。编译并运行良好。

同样奇怪的是 ++count; 在数组声明之后也不会导致任何问题。

g++4.71 上使用 -std=c++11 标志编译的程序

这是为什么?

最佳答案

您的代码不是实际上是合法的 C++。一些编译器允许将可变长度数组作为扩展,但它不是标准的 C++。要让 GCC 对此提示,请传递 -pedantic。通常,您应该始终至少将这些警告标志传递给 GCC:

-W -Wall -Wextra -pedantic

关于c++ - 数组声明中的常量表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12101124/

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