C 语言数组完全指南:声明、初始化、访问与常见操作
C 语言数组完全指南
本教程通过实战示例、最佳实践与安全准则,全面讲解 C 语言数组声明、初始化、访问、修改、输入输出及越界风险。

C 语言数组是存储同类型多值的连续内存块。存 100 个整数:
int data[100];
声明数组
语法:
dataType arrayName[arraySize];
例:
float mark[5];
mark 可存 5 个 float。声明后大小与类型固定。
访问元素
数组下标从 0 开始。大小 n 的数组,最后元素为 array[n-1]。例:
mark[0] // 首元素
mark[4] // 尾元素(大小 5)

关键点:
- 首下标为 0 而非 1。
float(4 字节)每个下标地址增 4。- 严禁访问
array[n-1]以外元素,导致未定义行为。
初始化数组
声明时初始化:
int mark[5] = {19, 10, 8, 17, 9};
或让编译器推导大小:
int mark[] = {19, 10, 8, 17, 9};
结果:
mark[0] = 19
mark[1] = 10
mark[2] = 8
mark[3] = 17
mark[4] = 9

修改元素
int mark[5] = {19, 10, 8, 17, 9};
mark[2] = -1; // 第三个元素
mark[4] = 0; // 第五个元素
输入与输出
读入数组元素:
scanf("%d", &mark[2]); // 第三个元素
scanf("%d", &mark[i-1]); // 第 i 个元素(1 基)
打印元素:
printf("%d", mark[0]); // 首个
printf("%d", mark[2]); // 第三个
printf("%d", mark[i-1]); // 第 i 个
示例 1:数组输入输出
#include <stdio.h>
int main() {
int values[5];
printf("Enter 5 integers: ");
for (int i = 0; i < 5; ++i) {
scanf("%d", &values[i]);
}
printf("Displaying integers:\n");
for (int i = 0; i < 5; ++i) {
printf("%d\n", values[i]);
}
return 0;
}
输出
Enter 5 integers: 1 -3 34 0 3 Displaying integers: 1 -3 34 0 3
示例 2:计算平均值
#include <stdio.h>
int main() {
int marks[10], n, sum = 0;
printf("Enter number of elements: ");
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
printf("Enter number%d: ", i + 1);
scanf("%d", &marks[i]);
sum += marks[i];
}
int average = sum / n;
printf("Average = %d", average);
return 0;
}
输出
Enter n: 5 Enter number1: 45 Enter number2: 35 Enter number3: 38 Enter number4: 31 Enter number5: 49 Average = 39
警惕越界访问
访问 testArray[12] 而数组仅 10 个元素,导致未定义行为——崩溃、数据损坏或静默错误。访问前务必验证下标。
多维数组
以上为一维数组。下一教程将探讨多维数组(数组的数组)及其高效用法。
C语言