C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:
type arrayName [ arraySize ]; |
double 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; |
数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。例如:
double salary = balance[9]; |
#include <stdio.h> |
int main () |
{ |
int n[ 10 ]; /* n 是一个包含 10 个整数的数组 */ |
int i,j; |
/* 初始化数组元素 */ |
for ( i = 0; i < 10; i++ ) |
{ |
n[ i ] = i + 100; /* 设置元素 i 为 i + 100 */ |
} |
/* 输出数组中每个元素的值 */ |
for (j = 0; j < 10; j++ ) |
{ |
printf("Element[%d] = %d\n", 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 允许从函数返回数组。 |
指向数组的指针 | 您可以通过指定不带索引的数组名称来生成一个指向数组中第一个元素的指针。 |