夺宝岛鞋子标注使用过:请问数组定义时,对于他的长度,不能通过输入函数(cin,scanf等)确定

来源:百度文库 编辑:高考问答 时间:2024/04/29 15:44:39
请问数组定义时,对于他的长度,不能通过输入函数(cin,scanf等)确定

例如
int a[SIZE];
其中
SIZE是且必须是一个常量,如5、1*5,或者
#define SIZE 5,const int SIZE = 5之类的,而不能是一个变量。
因为编译器在编译阶段必须确定数组的大小,以分配一定的内存,若是用输入函数输入的变量,则不能在编译阶段确定大小,只能在运行时才知道值。
所以,下面的代码是非法的。
int size=5;
int a[size];

如果想要在运行时通过输入大小来建立数组,可以使用malloc(C下)或者new(C++)来动态分配内存。
如:
int size;
int *a;
scanf("%d",&size);
a=(int*)malloc(sizeof(int)*size);
在C++下为
int size;
int *a;
cin>>size;
a= new int[size];