#include<stdio.h>

int main() {
	int arr1[10];//C与C++中都可以

	int sz1 = 10;
	int arr2[sz1];//C与C++中都不可以
	
	const int sz2 = 10;
	int arr3[sz2];//C中不可以,C++中可以	

	system("pause");
	return 0;
}

原因:

  • 数组定义的规定是维度必须是 常量
  • 在C语言中,const 修饰的标识符具有常属性,不能被直接修改,但本质依然是一个变量
  • 在C++中,const修饰的标识符就是常量。

【相关知识点】

注意在C中还有define定义的标识符常量

#include<stdio.h>
#define sz 10

int main() {
	int arr4[sz];//C与C++中都可以

	system("pause");
	return 0;
}