Skip to content

数组

什么是数组(Array)

数组是一个容器,可以存储多个相同类型的数据。

想象一下:

  • 你要记录班级里 5 个同学的成绩
  • 如果没有数组,你需要创建 5 个变量:score1, score2, score3, score4, score5
  • 有了数组,只需要一个变量:scores[5]

如何创建数组

基本语法

c
数据类型 数组名[元素个数];

实际例子

c
#include <stdio.h>

int main() {
    int scores[5];  // 创建一个可以存储5个整数的数组
    return 0;
}

提示

scores[5] 表示这个数组有 5 个位置,可以存储 5 个整数

创建时直接赋值

c
#include <stdio.h>

int main() {
    int scores[5] = {85, 92, 78, 95, 88};  // 创建并初始化
    return 0;
}

数组的编号规则

数组的编号(索引,Index)从 0 开始:

数组: [85, 92, 78, 95, 88]
索引:  0   1   2   3   4

注意

5 个元素的数组,索引是 0-4,不是 1-5

读取数组中的值

使用 数组名[索引] 来读取:

c
#include <stdio.h>

int main() {
    int scores[5] = {85, 92, 78, 95, 88};
    
    printf("第1个学生的成绩: %d\n", scores[0]);  // 输出: 85
    printf("第3个学生的成绩: %d\n", scores[2]);  // 输出: 78
    
    return 0;
}

运行结果:

第1个学生的成绩: 85
第3个学生的成绩: 78

修改数组中的值

使用 数组名[索引] = 新值 来修改:

c
#include <stdio.h>

int main() {
    int scores[5] = {85, 92, 78, 95, 88};
    
    printf("修改前: %d\n", scores[0]);  // 输出: 85
    scores[0] = 90;                     // 修改第1个元素
    printf("修改后: %d\n", scores[0]);  // 输出: 90
    
    return 0;
}

运行结果:

修改前: 85
修改后: 90

完整示例:管理学生成绩

c
#include <stdio.h>

int main() {
    int scores[3] = {75, 82, 90};
    
    // 读取并显示所有成绩
    printf("学生1: %d\n", scores[0]);
    printf("学生2: %d\n", scores[1]);
    printf("学生3: %d\n", scores[2]);
    
    // 修改第2个学生的成绩
    scores[1] = 88;
    printf("修改后,学生2: %d\n", scores[1]);
    
    return 0;
}

运行结果:

学生1: 75分
学生2: 82分
学生3: 90分
修改后,学生2: 88分

💪 练习题

练习1:创建并输出数组

创建一个数组存储 4 个整数:10, 20, 30, 40,然后输出第 2 个和第 4 个数字。

查看答案
c
#include <stdio.h>

int main() {
    int numbers[4] = {10, 20, 30, 40};
    
    printf("第2个数字: %d\n", numbers[1]);  // 输出: 20
    printf("第4个数字: %d\n", numbers[3]);  // 输出: 40
    
    return 0;
}

练习2:修改数组元素

创建数组 {5, 10, 15},将第 1 个元素改为 8,第 3 个元素改为 20,然后输出所有元素。

查看答案
c
#include <stdio.h>

int main() {
    int data[3] = {5, 10, 15};
    
    data[0] = 8;   // 修改第1个
    data[2] = 20;  // 修改第3个
    
    printf("%d, %d, %d\n", data[0], data[1], data[2]);
    // 输出: 8, 10, 20
    
    return 0;
}

📌 小结

  • 数组用于存储多个相同类型的数据:int scores[5];
  • 数组索引从 0 开始,5 个元素的索引是 0-4
  • 读取:scores[0] 获取第 1 个元素
  • 修改:scores[0] = 90; 改变第 1 个元素的值