VC++中的一维数组定义 100

想定义个一维数组value[]doublevalue[];为何还要指定大小,然后我想定义个intm;doublevalue[m];也不行最后定义doublevalue[1... 想定义个一维数组value[]

double value[];
为何还要指定大小,然后我想定义个
int m;
double value[m];
也不行

最后定义 double value[100];

才可以,难道只有这样才可以吗?
我想定义个一维数组,它的长度由一个整形数m控制,
这该怎么做呢?难道只能定义时只能用常数来规定数组长度

高手帮忙解答下
展开
 我来答
可以叫我表哥
推荐于2016-03-13 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464978
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
C语言中定义一维数组如下:
数据类型 数组名[数组长度]; // 不进行初始化的数组
数据类型 数组名[数组长度] = {数组元素初始化值}; // 进行初始化的数组

举例如下:
// 定义一个int型的未进行初始化数组data1
int data1[5];
// 定义一个int型的数组data2,并对数组中各元素进行初始化
int data2[5] = {5, 2, 4, 0, 3};
catm3
推荐于2017-12-16 · TA获得超过511个赞
知道小有建树答主
回答量:234
采纳率:100%
帮助的人:359万
展开全部
你在使用VC++,那么我建议你学点C++,还得学点STL

至于当前解决你的问题,参考下面的代码:
//下面这行的头文件里有你需要的长度不定的“数组”(带引号因为它不是真的数组)
#include<vector>

//下面这一行为了方便,=你学了C++就知道了
using namespace std;

int main()
{
int arrLen=10;
//...干了很多你认为重要的事之后

//下面这行弄出一个int类型的数组叫intArray
vector<int> intArray;
//下面这一行把intArray的大小变为10个int,当你还可以继续变成其他大小
intArray.resize(arrLen);

//下面的操作就很像数组了,注意它不是真真的数组,学了C++后你也不会像现在这样用的,我只是给你解决手头的问题
intArray[0]=1;
intArray[1]=2;
//...
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星夜V琉璃
推荐于2018-03-14 · TA获得超过201个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:280万
展开全部
LZ的代码在阅读上可以理解,但实际上编译不可以通过,[]里面的值必须为常量,而你的m是整形变量,值是不定的。
试想一下如果有这么段代码

int m=5;
double value[m]={1,2,3,4,5}; //这样看起来好像很合理
m=7;
cout<<value[m-1]<<endl; //到这里全乱套了,根本没有value[6]这个元素

事实上上面的代码是错的,为了避免上面的定义混乱,所以[]里面的值必须为常量,如果LZ想用上面那种模式定义的话也行,代码改成这样

const int m=5; //在int 前面加上关键字const
double value[m];

const int m 表示定义一个常量m,m的值不能再更改,如果有这么一段代码

const int m=5;
m=6;

编译器就会报错,m是常量,值不能再更改了。

全手打,够详细了吧
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2008-11-16 · TA获得超过1373个赞
知道小有建树答主
回答量:542
采纳率:53%
帮助的人:299万
展开全部
让我来给你解释下吧:

1.double value[],之所以错了了,是因为在一维数组定义的时候,要指定数组成员个数或直接给数组赋初值(这样你赋的值个数可以不等于数组的大小).

比如 double value[100]就定义一个成员为100的一维数组;
double value[100]={1,2,3,4}即定义了一个一维数组,他的前4个成员的值.

2.int m;
double value[m],为什么会错!
首先数组中的成员数(即"[]"中的数),必须为常量,而你的int m,是定义了一个整型的变量m(就算改为int m=100还是错的).其次你必须说明m是常量,即用#define M 100(常量的定义一般用大写字母,"100"可以去掉,定义位置放在所有预处理命令后,如#include <stdio.h>),这样你再使用double value[M]就不会有错.

3.double value[100]对了,是因为"100"是系统内部植入的常量当然正确了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友132dc80b6
2008-11-10 · 超过18用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:53.4万
展开全部
数组是在编译时确定大小的,所以要用常量表达式给出他的大小;
可以用动态空间分配new来动态分配一定的空间,配合指针使用
估计你还没学到那,现在你只学到静态数组这,静态和动态数组有不同的公用,一般能用静态的尽量用静态
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式