上面两个代码都提示表达式必须含有常量值变量的报错,如何处理
时间: 2023-12-29 16:02:35 浏览: 187
含变量的表达式求值问题.rar
5星 · 资源好评率100%
这个报错提示是因为在定义数组长度时使用了非常量表达式,需要使用常量表达式作为数组长度。
可以考虑将非常量表达式转化为常量表达式,或者使用动态内存分配的方式来解决这个问题。如果是在函数内部定义数组,可以使用变长数组(VLA)来解决这个问题,例如:
```
void foo(int n) {
int arr[n]; // n 可以是变量
// ...
}
```
如果是在全局作用域或者静态变量中定义数组,可以使用宏定义或者 const 常量来定义数组长度,例如:
```
#define N 10
int arr[N];
const int N = 10;
int arr[N];
```
注意使用宏定义时需要注意不要重复定义,使用 const 常量时需要保证该变量在编译时就已经确定了值。
阅读全文