什么是数组
- 数组是 C 语言中的一种数据结构,用于存储一组具有相同数据类型的数据。
 - 数组中的每个元素可以通过一个索引(下标)来访问,索引从 0 开始,最大值为数组长度减 1。
 

一维数组
数组的使用
定义语法格式
类型 数组名[元素个数];int arr[5];
- 数组名不能与其它变量名相同,同一作用域内是唯一的
 - 其下标从0开始计算,因此5个元素分别为arr[0],arr[1],arr[2],arr[3],arr[4]
 
#include <stdio.h>int main() {// 定义了一个数组,名字叫a,有10个成员,每个成员都是int类型int a[10];// a[0]…… a[9],没有a[10]// 没有a这个变量,a是数组的名字,但不是变量名,它是常量a[0] = 0;// ……a[9] = 9;// 数据越界,超出范围,错误// a[10] = 10; // errfor (int i = 0; i < 10; i++) {a[i] = i; // 给数组赋值}// 遍历数组,并输出每个成员的值for (int i = 0; i < 10; i++) {printf("%d ", a[i]);}printf("\n");return 0;}
数组的初始化
- 在定义数组的同时进行赋值,称为初始化
 - 全局数组若不初始化,编译器将其初始化为零
 局部数组若不初始化,内容为随机值
int a1[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 定义一个数组,同时初始化所有成员变量int a2[10] = { 1, 2, 3 }; // 初始化前三个成员,后面所有元素都设置为0int a3[10] = { 0 }; // 所有的成员都设置为0// []中不定义元素个数,定义时必须初始化int a4[] = { 1, 2, 3, 4, 5 }; // 定义了一个数组,有5个成员
数组名
- 数组名是一个地址的常量,代表数组中首元素的地址
 
#include <stdio.h>int main() {// 定义一个数组,同时初始化所有成员变量int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};// 数组名是一个地址的常量,代表数组中首元素的地址printf("a = %p\n", a);printf("&a[0] = %p\n", &a[0]);int n = sizeof(a); // 数组占用内存的大小,10个int类型,10 * 4 = 40int n0 = sizeof(a[0]); // 数组第0个元素占用内存大小,第0个元素为int,4int num = n / n0; // 元素个数printf("n = %d, n0 = %d, num = %d\n", n, n0, num);return 0;}
