编程语言
393
数组是一种数据结构,其可存储固定大小的相同类型元素的顺序集合。
数组是由连续的内存位置组成 低地址对应前面的元素,高地址对应后面的元素 数组中的元素可通过索引访问, 程序员是从0开始计数的, 所以第一个元素的索引为0
声明
在 C 中要声明一个数组,需要指定元素的类型和元素的数量
type arrayName [ arraySize ];
arraySize 必须是一个大于零的整数常量 type 可是任意数据类型(包括自定义类型)
我们可以声明一个包含10个 float 元素的数组 floats
float floats[10];
初始化
可以逐个初始化数组,也可使用一个初始化语句 省略掉了数组的大小,数组的大小则为初始化时元素的个数。
float floats[5] = {1000.0, 2.0, 3.4, 7.0, 50.0}; float floats[] = {1000.0,2.0,3.4,7.0,50.0}; floats[0] = 3; //将第一个元素赋值为3
访问
数组元素可以通过数组名称加索引进行访问, 类似于上述的 floats[0]
float tmp = floats[1];
数组中第 2 个元素的值赋给 tmp 变量。
实例
#include <stdio.h> int main () { int n[ 10 ]; // 声名 int i,j; for ( i = 0; i < 10; i++ ) n[ i ] = i + 100; // 初始化 for (j = 0; j < 10; j++ ) printf("Element[%d] = %d\n", j, n[j] ); //访问 return 0; }
sizeof
数组长度可以使用 sizeof 运算符来获取数组的长度,例如:
int numbers[] = {1,2,3,4,5}; int length = sizeof( numbers) / sizeof(numbers[0] ); //数组长度 = 数组总大小 / 数组每个元素的大小
数组名
数组名表示数组的地址,即数组首元素的地址。 声明和定义一个数组时,数组名就代表数组的地址。
int myArray[5]={10,20,30,40,50};
myArray 是数组名
- 它表示整数类型的数组,包含 5 个元素
- 也代表着数组的地址,即第一个元素的地址。
数组名本身是一个常量指针,意味着它的值是不能被改变的,一旦确定,就不能再指向其他地方。
我们可以使用&运算符来获取数组的地址,如下所示:
int myArray[5] = {10, 20, 30, 40, 50}; int* ptr = &myArray[0]; // 或者直接写作 int *ptr = myArray;
ptr 被初始化为 myArray 的地址,即数组的第一个元素的地址。
下一节讲述什么是指针