C 语言中,数组 [2] 属于结构数据类型。一个数组能够合成为多个数组元素,这些数组元素能够是根本数据类型或是构造类型。因而按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、构造数组等各种类别。
对于可变长数组(VLA)的问题:原来的 C89 规范中是不容许可变长数组呈现的,然而在 C99 规范中,退出了对 VLA 的反对 [3],然而反对的编译器不多,而且因为栈溢出的平安问题,没有太多的人敢用这个可变长数组,所以在 C11 规范中又把它规定为可选实现的性能了[4]。
如果有过用其它语言编程的经验,那么想必会相熟数组的概念。因为有了数组,能够用雷同名字援用一系列变量,并用数字(索引)来辨认它们。在许多场合,应用数组能够缩短和简化程序,因为能够利用索引值设计一个循环,高效解决多种状况。数组有上界和下界,数组的元素在高低界内是间断的。因为 Visual Basic 对每一个索引值都调配空间,所以不要不切实际申明一个太大的数组。
此处数组是程序中申明的变量数组。它们不同于控件数组,控件数组是在设计时通过设置控件的 Index 属性规定的。变量数组总是间断的;与控件数组不同的是,不能从一个数组的中部加载或卸载数组元素。
一个数组中的所有元素具备雷同的数据类型(在 C、C++、Java、pascal 中都这样。但也并非所有波及数组的中央都这样,比方在 Visual Foxpro 中的数组就并没这样的要求)。当然,当数据类型为 Variant 时,各个元素可能蕴含不同品种的数据(对象、字符串、数值等等)。能够申明任何根本数据类型的数组,包含用户自定义类型和对象变量。
如果要用户输出的是一个数组,个别是用一个循环,然而在输出前也须要固定数组的大小。
compact 跟变长数组没有太大的关系,也应该用不到变长数组。因为个别的传数组到函数中就是传数组的地址和元素的个数的,那只是一个提醒,不是要求。
原型能够这样写(假如数组的元素是 type):
int compact(type *Array,int Count)
数组类型阐明 在 C 语言中应用数组必须先进行类型阐明。
数组阐明的个别模式为:类型说明符 数组名 [常量表达式],……;其中,类型说明符是任一种根本数据类型或结构数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式示意数据元素的个数,也称为数组的长度。
数组就是一次性定义雷同数据类型的一组变量数组定义。
举例
阐明整型数组 a,有 10 个元素。若要示意第 10 个元素,则应用 a[9]。第一个则是 a[0]。
int a[10];
阐明实型数组 b,有 10 个元素,实型数组 c,有 20 个元素。