| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 524 人关注过本帖
标题:[求助]数组赋值问题
只看楼主 加入收藏
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
结帖率:86.67%
收藏
 问题点数:0 回复次数:4 
[求助]数组赋值问题
如过我想先确定数组里面的的数,然后再让他自己判定长度,该怎么办?(用cin输入)

不是这样哦:array[]={1,2,3,4,5,6};

而是在程序运行后输入,可以的吗?
搜索更多相关主题的帖子: 赋值 
2007-08-06 00:01
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
那天不是说了,你还没理解,在编译时不能确定大小的数组,就不行,只能使用动态数组。

静态:
int arr[const_size_n] = {1,2,3,4,5,6,7,8..n}; //n个元素(n为常量)
int arr[] = {1,2,3,4,5,6,7,8..n}; //n个元素(n为常量)

动态:
int *parr = new int[size_n]; //n为变量,意思你可以在程序运行后确定

ex:
int size_n;
cin >> n;
int *parr = new int[size_n];


你说的先输入数,再判断自身大小,直接的用动态数组也不可行,因为你要能输入一个数,必须保证事先有这个数的位置(也就是堆内存)。
你不怕麻烦,就自己封装一个类。图简单就用容器类 比如:vector。

vector<int> ivec;
int num;
while (cin >> num)
ivec.push_back(num);
cout << ivec.size() << endl; //可以自己根据保存的元素确定大小


ps:这么晚了还在学习啊,精神可嘉,睡觉了哈,有什么问题先留着,明天帮你看!

[此贴子已经被作者于2007-8-6 0:19:40编辑过]


Fight  to win  or  die...
2007-08-06 00:18
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 
以下是引用aipb2007在2007-8-6 0:18:46的发言:
那天不是说了,你还没理解,在编译时不能确定大小的数组,就不行,只能使用动态数组。


那天说的是看不明白啊
而且看得头都晕了

[此贴子已经被作者于2007-8-6 1:47:36编辑过]


2007-08-06 01:04
圆圆的鸟蛋
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2007-4-22
收藏
得分:0 

声明静态数组的时候,系统会为数组即时分配空间,所以必须先确定数组的大小。。要想根据实际的大小来声明数组,就只有用new了。。
打个比方:静态数组就是火车,准载人数是固定了的,可以不再满,但绝不能超载,而且准载人数是之前就固定了的。。动态分配就好像是向铁道部打电话,请求根据实际情况确定车厢的数量。。


鸟蛋开始孵化。。。我等待那一天Forever。。
2007-08-06 01:14
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 
看了好几遍帖子,然后MSDN了一下,终于明白了````呼。
我以前就一直忘记了个 *P 可以是数组,看来看去,看半天都不明白。
谢谢大家了

[此贴子已经被作者于2007-8-6 1:47:12编辑过]


2007-08-06 01:46
快速回复:[求助]数组赋值问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019545 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved