跳到主要内容

C 语言数组基础

介绍

在C语言中,数组是一种用于存储相同类型数据的集合。数组中的每个元素都有一个索引,通过索引可以访问或修改数组中的元素。数组是C语言中最基础且重要的数据结构之一,广泛应用于各种编程场景中。

数组的定义

在C语言中,数组的定义格式如下:

c
数据类型 数组名[数组大小];

例如,定义一个包含5个整数的数组:

c
int numbers[5];

这里,int 是数据类型,numbers 是数组名,5 是数组的大小,表示数组可以存储5个整数。

备注

数组的大小必须是一个常量表达式,不能是变量。

数组的初始化

数组可以在定义时进行初始化,也可以在定义后逐个赋值。以下是两种初始化方式的示例:

定义时初始化

c
int numbers[5] = {1, 2, 3, 4, 5};

定义后逐个赋值

c
int numbers[5];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
提示

如果数组在定义时未完全初始化,未初始化的元素将自动设置为0。

数组的访问

数组中的元素通过索引访问,索引从0开始。例如,访问数组 numbers 的第一个元素:

c
int firstNumber = numbers[0];

以下是一个完整的示例,展示如何定义、初始化和访问数组:

c
#include <stdio.h>

int main() {
int numbers[5] = {1, 2, 3, 4, 5};

for (int i = 0; i < 5; i++) {
printf("numbers[%d] = %d\n", i, numbers[i]);
}

return 0;
}

输出:

numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5

多维数组

C语言支持多维数组,最常见的多维数组是二维数组。二维数组可以看作是一个表格,有行和列。

二维数组的定义与初始化

c
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

二维数组的访问

访问二维数组的元素需要使用两个索引,分别表示行和列。例如,访问 matrix 的第二行第三列的元素:

c
int element = matrix[1][2];  // 值为6

以下是一个完整的二维数组示例:

c
#include <stdio.h>

int main() {
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j]);
}
}

return 0;
}

输出:

matrix[0][0] = 1
matrix[0][1] = 2
matrix[0][2] = 3
matrix[1][0] = 4
matrix[1][1] = 5
matrix[1][2] = 6
matrix[2][0] = 7
matrix[2][1] = 8
matrix[2][2] = 9

实际应用场景

数组在编程中有广泛的应用,以下是一些常见的应用场景:

  1. 存储一组数据:例如,存储学生的成绩、温度数据等。
  2. 矩阵运算:二维数组常用于表示矩阵,进行矩阵加法、乘法等运算。
  3. 字符串处理:在C语言中,字符串实际上是字符数组。

以下是一个实际应用示例,计算一组学生的平均成绩:

c
#include <stdio.h>

int main() {
int scores[5] = {85, 90, 78, 92, 88};
int sum = 0;

for (int i = 0; i < 5; i++) {
sum += scores[i];
}

float average = (float)sum / 5;
printf("平均成绩: %.2f\n", average);

return 0;
}

输出:

平均成绩: 86.60

总结

数组是C语言中非常重要的数据结构,用于存储一组相同类型的数据。通过索引可以方便地访问和修改数组中的元素。数组可以是一维的,也可以是多维的,广泛应用于各种编程场景中。

警告

在使用数组时,务必注意数组的边界,避免越界访问,否则可能导致程序崩溃或不可预知的行为。

附加资源与练习

  1. 练习1:定义一个包含10个整数的数组,并编写程序计算数组中所有元素的和。
  2. 练习2:定义一个3x3的二维数组,并编写程序计算矩阵的转置。
  3. 练习3:编写一个程序,使用数组存储10个学生的成绩,并找出最高分和最低分。

通过以上练习,你将更深入地理解数组的使用方法,并掌握C语言中数组的基本操作。