C语言编程提供数组的数据结构,其可存储相同类型的元素在一个固定大小的连续集合。数组用于存储数据的集合,但它往往是将数组作为相同类型的变量的集合。
相反,声明单个变量,如number0, number1, ..., 和 number99, 声明一个数组变量,如数字并使用 numbers[0], numbers[1], 和 ..., numbers[99] 表示单个变量。在数组的特定元素由索引进行访问。
所有数组由连续的内存位置。最低的地址对应于第一元素和最高地址为最后一个元素。
声明数组
在C语言中声明数组,程序员指定元素的类型以及数组所需元件的数目,如下:
type arrayName [ arraySize ];
这就是所谓的一维数组。arraySize必须是一个非零整数常数越大并且类型是任何有效的C语言数据类型。例如,要声明一个10个元素的数组称为double类型的balance数组,使用如下语句:
double balance[10];
现在balance是一个变量数组,其足以容纳高达10双精度数字。
初始化数组
可以通过一个是C语言在任一初始化数组或使用单个声明如下:
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
括号之间的{}数值的个数不能大于声明方括号[]中的数组元素的个数。
如果省略数组的大小,数组被创建时只是大足以容纳初始化数据。因此,如果:
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
将创建完全相同的数组,在前面的例子中那样。下面是一个例子,分配阵列的单个元素:
balance[4] = 50.0;
以上语句数组中的元素分配数第5个元素的值为50.0。所有数组使用0作为其第一元素,也被称为基本索引;最后一个索引的索引是该数组的总大小减去1以下是上面讨论的相同的数组的图形表示:
访问数组元素
一个元素由索引数组名访问。这是由放置在方括号内的元素的索引数组的名称后进行。例如:
double salary = balance[9];
以上语句将10个元素的数组赋值给变量salary。以下是其中将使用所有上述三个概念即一个例子。声明,分配和访问数组:
#include <stdio.h> int main () { int n[ 10 ]; /* n is an array of 10 integers */ int i,j; /* initialize elements of array n to 0 */ for ( i = 0; i < 10; i++ ) { n[ i ] = i + 100; /* set element at location i to i + 100 */ } /* output each array element's value */ for (j = 0; j < 10; j++ ) { printf("Element[%d] = %d ", j, n[j] ); } return 0; }
让我们编译和运行上面的程序,这将产生以下结果:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
C语言数组详述
在C语言中数组是很重要,应该需要大量的更多的细节介绍。有下列关系到数组几个重要的概念C程序员应该是清楚:
概念 | 描述 |
---|---|
多维数组 | C语言支持多维数组。多维数组的最简单的形式是二维数组 |
函数传递数组 | 可以通过指定数组的名称没有索引传递给函数的指针数组 |
函数返回数组 | C语言允许函数返回数组 |
指针数组 | 可以简单的通过指定数组名,没有任何指定索引而产生一个指向数组的第一个元素 |