const int n = 3; constexpr int N = n; 仍然报错C++ expression must have a constant valuethe value of variable (declared at line 12) cannot be used as a constant
时间: 2024-01-10 22:03:24 浏览: 207
C++关于Const使用
这是因为 `const` 和 `constexpr` 的区别:
- `const` 变量在编译时确定,但在运行时可能会发生变化;
- `constexpr` 变量必须在编译时确定,并且在运行时不能发生变化。
因此,虽然你使用了 `constexpr` 修饰变量 `N`,但是你依然在声明变量 `n` 时使用了 `const`,导致 `n` 不是编译时常量,所以无法用于数组的大小。
如果你想要定义一个编译时常量,可以使用如下方式:
```c++
#define N 3
```
或者:
```c++
const int N = 3;
```
这两种方式都可以在数组大小的声明中使用。
阅读全文