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
实际应用场景
数组在编程中有广泛的应用,以下是一些常见的应用场景:
- 存储一组数据:例如,存储学生的成绩、温度数据等。
- 矩阵运算:二维数组常用于表示矩阵,进行矩阵加法、乘法等运算。
- 字符串处理:在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:定义一个包含10个整数的数组,并编写程序计算数组中所有元素的和。
- 练习2:定义一个3x3的二维数组,并编写程序计算矩阵的转置。
- 练习3:编写一个程序,使用数组存储10个学生的成绩,并找出最高分和最低分。
通过以上练习,你将更深入地理解数组的使用方法,并掌握C语言中数组的基本操作。