c语言数组问题,c语言数组问题讨论

dfnjsfkhak 10 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言数组问题的问题,于是小编就整理了2个相关介绍c语言数组问题的解答,让我们一起看看吧。

  1. c语言中数组的总结?
  2. c语言如何定义未知个数的数组?

c语言中数组的总结

type 为数据类型,arrayName 为数组名,length 为数组长度需要注意的是:

数组长度 length 最好是常量表达式,例如 10、20*4 等,这样在所有编译器下都能运行通过如果 length 中包含了变量,例如 n、4*m 等,在某些编译器下就会报错,我们已在《C语言变长数组(VLA)》一节专门讨论了这点。

c语言数组问题,c语言数组问题讨论-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

数组是一个整体,它的内存是连续的;也就是说,数组元素之间是相互挨着的,彼此之间没有一点点缝隙。

一般情况下,数组名会转换为数组的地址,需要使用地址的地方,直接使用数组名即可。

c语言如何定义未知个数的数组?

C语言在数组个数未知的情况下,根据应用情况不同,有三种方式。

c语言数组问题,c语言数组问题讨论-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

1,数组元素总数未知,但是需要存储内容是已知的。 其实这是一种变相的已知个数,只是编程者不去计算总个数,把这个工作交给系统来做。这时可以通过数组个数留空,显式初始化数组进行声明。 比如 char s[] = "this is a test string"; 就是初始化了这样一个数组s,其空间个数隐式的由初始化字符串决定。

2,数组元素总数未知,但最大规模已知。 比如不知道数组的总个数,但是确定不会超过100个,那么就可以定义一个100个元素的数组,供存储调用

3,动态分配数组。 通过malloc函数,可以动态的分配数组,然后记录下当前分配的数组元素个数,并使用该数组。当数组空间不足时,可以通过realloc函数,重新分配空间,扩大数组元素个数。 比如 int size = 100; int *p = (int *)malloc(sizeof(int) * 100); // 初始化分配100个元素空间。用size保存当前数组规模。 p = realloc(sizeof(int)*(size + 100), p);//当空间不足时,增加100个元素。 size+=100;//需要注意的是,必须同步维护size的大小,否则会出错。

c语言数组问题,c语言数组问题讨论-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

到此,以上就是小编对于c语言数组问题的问题就介绍到这了,希望介绍关于c语言数组问题的2点解答对大家有用

标签: 数组 个数 元素