c语言中数组元素的个数可以不固定吗?

来源:百度知道 编辑:UC知道 时间:2024/05/31 22:19:55
我想很难,但可不可以通过自定义函数不确定的形参来接受一个未知的元素个数.

是这样的:我想写这么一个程序,先输入一组数据,比如考试分数,85 70 65...等等,然后程序反馈:您输入了n个数据,它们是85 70 65...,下次再测试时,数据的个数也许不一样,所以我想将数组的元素定义为不确定,不知行不行.
当然定义一个超大的数组是可以的,但我希望能将数组的元素不确定化,即使通过自定义函数也行,复杂一定也行,学习麽.一定要用数组这一方法解决,正在深入学习...

不行~~
但是可以用链表~

C语言里面,狭义的数组必须是定长的,这一点不用怀疑。

可以用一些变通的方法实现类似变长数组的功能,比如动态分配内存后,按数组方式访问。

数组元素个数不固定确实有点难,可以考虑像链表那样动态声明变量.

1.一维数组的定义方式为: 类型说明符 数组名 [常量表达式];

例如 int a[10];

常量表达式中可以包括常量和符号常量,不能包含变量。也就是说,c不允许对数组的大小作动态定义,
即数组的大小不依赖于程序运行过程中变量的值。

2.不过可以用宏定义来解决问题的:

#define M 20

然后在程序中定义数组a[M]
这样就可以通过改变M的数值来解决问题。

定义数组的时候必须定义其大小,除非定义的时候就给数组赋初值,可以不定义数组的大小。

只能用malloc,free,realloc来了,c++地下还有vector,list,deque