c#include int main() { // 使用const声明数组大小(下面这行代码是错误的) const int size = 5; int array[size]; // 初始化数组元素 for (int i = 0; i < size; ++i) { array[i] = i * 2; } // 打印数组元素 printf("数组元素:%"); for (int i = 0; i < size; ++i) { printf("%d ", array[i]); } return 0;}
上述代码中,我们试图使用const int size = 5;声明数组的大小,但这是不合法的。编译器将报错,因为数组的大小必须在编译时确定。为什么不能使用const声明数组大小数组的大小在编译时必须是常量表达式,而const关键字创建的变量在运行时才确定其值。因此,const不能用于声明数组的大小。替代方案:宏定义要在数组的大小上使用符号常量,通常使用宏定义是一种常见的替代方案。通过宏定义,我们可以在编译时用一个符号常量替代数组的大小。以下是一个示例:
c#include #define ARRAY_SIZE 5int main() { int array[ARRAY_SIZE]; // 初始化数组元素 for (int i = 0; i < ARRAY_SIZE; ++i) { array[i] = i * 2; } // 打印数组元素 printf("数组元素:%"); for (int i = 0; i < ARRAY_SIZE; ++i) { printf("%d ", array[i]); } return 0;}