C++中定义一个数组一定要给出长度吗?要是我想通过用户输入给出数据个数然后再一一输入数据呢?请给出...

C++中定义一个数组一定要给出长度吗?要是我想通过用户输入给出数据个数然后再一一输入数据呢?请给出实例代码

是的,定义数组必须给出其长度,想要改变其大小也有几种方案
1、用宏定义
#define ARRAYSIZE 10
int array[ARRAYSIZE]
这样每次程序运行时只需改变宏就可以方便的改变数组的大小
2、动态生成
int N;
cin>>N;
int *array=new int[n];
这样就可以使用了
3、使用STL中的vector,vector就相当于一个动态的数组,可以随时动态地增加大小,非常方便
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-14
不一定要
比如我定义一个整形数组int num[];然后就能给它赋值了
比如if(!cin){cin>>num[i];i++;}
多看看C++的书就知道了,基础才是编程的关键
第2个回答  2012-03-14
静态数组是要指定大小的。你需要的是动态数组
例:
//定义一个动态数组array
int *array;
// 运行中知道其大小为num, 此时再为其分配内存
array = new int[num];
// 然后可以像静态数组一样使用
array[0] = 1;
array[100]=300;
// 最后释放内存
delete[] array;本回答被网友采纳
第3个回答  2012-03-14
数组在定义的时候就要给出长度。
你可以预定一个比较长的数组:
比如理论上用户输入的正确数据为3000以内的数,你可以定义一个
数组int a[3000],int num;
cout<<"请输入你的数字:";
cin>>num;
for(int i=0;i<num;i++)
........................
这种问题解决的最好方法是定义一个单链表
第4个回答  2012-03-14
定义静态数组一定要给出数组长度,或者编译器能够知道数组长度,例如:
int a[5] = {0};
int b[] = {1, 2, 3, 4, 5}; //在编译阶段能知道它的长度为5
但是如果想在运行期间定义数组的长度,必须动态分配,例如:
int size = 0;
cin >> size;
int *p = new int[size]; //动态创建数组
delete [] p; //动态释放数组
也可以使用标准模板库的vector
相似回答