c语言 定义数组时 大小必须是常量吗

数组的大小是一个数据库的记录条数针对某一个数据库这个大小是不变的如果换一个数据库大小就变化了但是这个值是可以通过另外一个函数来获得请问我怎样用这个值来定义数组的大小... 数组的大小是一个数据库的记录条数 针对某一个数据库 这个大小是不变的 如果换一个数据库 大小就变化了 但是这个值是可以通过另外一个函数来获得
请问我怎样用这个值来定义数组的大小
展开
 我来答
yesyes科
2020-05-14 · TA获得超过2.6万个赞
知道答主
回答量:608
采纳率:0%
帮助的人:10.1万
展开全部

1、首先双击启动visual studio 2015,单击“文件”-“新建”-“项目”,选择visual c++,然后是“空项目”。

2、定义了2个一维数组,一个名为arry1的整形数组,有1个元素;arry2为实型数组,有100个元素,注意数组下标是从0开始的,不是从1开始,比如arry1的第一个数组为arry[0]不是arry[1]。

3、对数组赋值或者部分赋值,第一个表示x[0]=1,x[1]=2,x[2]=3,x[3]=4,x[4]=5;第二个表示对前三个元素赋值,后面的元素都为0,x[0]=1,x[1]=2,x[2]=3,x[3]=0,x[4]=0。

4、一般形式:数组名[下标1][下标2],下标也是从0开始表示是第一个元素。

5、最后对二维数组赋值:int x[2][2] = { {1,2},{3,4} }表示x[0][0]=1,x[0][1]=2,x[1][0]=3,x[1][1]=4,x[0][0]表示第一行第一列,其他依次类推即可。

匿名用户
推荐于2018-02-27
展开全部
哈哈,楼上的两位真有意思,
一个咬定是"唯一的办法",一个还吹捧的劲儿劲儿的
动态数组的malloc和realloc都不知道吧。

这么做就可以了:
既然是记录条数,那么一定是一个整数,用动态数组就可以实现。

#include <malloc.h>
void main()
{
int *p; //动态数组的声明
p = (int * ) malloc (10);//这里的10就是动态申请的size,也就是数组的成员个数
p[0]=1;//后面就和正常的数组使用一样
p[1]=p[0]+2;
.........................

//换一个数据库 大小就变化了
p = (int * ) realloc (p,20); //假设变成了20,再通过realloc来重新定义数组大小
…………………………

free(p);//当内存不再使用时,应使用free()函数将内存块释放
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
推荐于2016-03-29 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6447万
展开全部

C语言中,直到C99标准出现之前,声明数组时在方括号内只能使用整数常量表达式。

而C99做了很大改进,允许数组的[ ]中的值是整形变量或是整形表达式。如:

int n;
scanf ("%d", &n);
int array[n];

虽然n确实是需要运行时动态确定的变量,但是在C99中,以这种变量作为数组大小的形式已经是允许的了。这样的数组就被称之为“变长数组”。

注意:变长数组是指用整型变量或表达式声明或定义的数组,而不是说数组的长度会随时变化,变长数组在其生存期内的长度同样是固定的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fcwenmingxing
2009-03-21 · TA获得超过224个赞
知道小有建树答主
回答量:317
采纳率:0%
帮助的人:219万
展开全部
是的.
可以这样:
#include<stdio.h>
#include<stdlib.h>num是变量.
int *a=(int *)malloc(num*sizeof(int));
改变大小:
a=realloc(a,num2*sizeof(int));
用完后
free(a);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
红山人2008
2009-03-21 · TA获得超过4679个赞
知道大有可为答主
回答量:5699
采纳率:0%
帮助的人:3940万
展开全部
嗯.楼上说的是.这是通常采用的办法.用预编译命令,在程序文件的开关,定义一个常量,如这次你使用这个程序时记录数是一百,你就可以定义:#define MAX 100,之后,你就可以定义数组如a[MAX]下次你再使用这个程序时,记录数是200,你只要修改一下这里就可以了.朋友.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式