一、引言
在C语言中,数组是一种重要的数据结构,它允许我们存储多个相同类型的元素,并通过索引来访问这些元素。一维数组是最简单的数组形式,用于存储线性数据;而二维数组则用于存储表格型数据,如矩阵。本文将详细介绍一维数组和二维数组的基本概念、使用方法和代码实例。
二、一维数组
1.概念
一维数组是由一系列相同类型的元素组成的线性表,每个元素都有一个唯一的索引值,用于标识其在数组中的位置。在C语言中,数组的索引值从0开始。
2.声明与初始化
声明一维数组时,需要指定数组的类型和大小。例如,声明一个包含10个整数的数组可以写作:
int array[10];
初始化数组时,可以在声明时直接为数组元素赋值。例如:
int array[5] = {1, 2, 3, 4, 5};
3.访问与修改
通过索引值可以访问和修改数组中的元素。例如,访问数组中的第一个元素可以写作array[0],修改数组中的第三个元素为10可以写作array[2] = 10。
4.代码实例
以下是一个简单的一维数组代码实例,用于计算数组中所有元素的和:
#include <stdio.h> int main() { int array[5] = {1, 2, 3, 4, 5}; int sum = 0; for (int i = 0; i < 5; i++) { sum += array[i]; } printf("The sum of array elements is: %d\n", sum); return 0; }
三、二维数组
1.概念
二维数组是由多个一维数组组成的表格型数据结构,每个一维数组称为二维数组的行,每个元素称为二维数组的元素。在C语言中,二维数组的索引值也从0开始。
2.声明与初始化
声明二维数组时,需要指定数组的行数和列数。例如,声明一个3行4列的整数二维数组可以写作:
int matrix[3][4];
初始化二维数组时,可以在声明时直接为数组元素赋值。例如:
int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
3.访问与修改
通过行索引和列索引可以访问和修改二维数组中的元素。例如,访问二维数组中第一行第二列的元素可以写作matrix[0][1],修改二维数组中第二行第三列的元素为10可以写作matrix[1][2] = 10。
4.代码实例
以下是一个简单的二维数组代码实例,用于计算矩阵的转置:
#include <stdio.h> #define ROWS 2 #define COLS 3 void transpose(int matrix[ROWS][COLS], int transposeMatrix[COLS][ROWS]) { for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { transposeMatrix[j][i] = matrix[i][j]; } } } int main() { int matrix[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}}; int transposeMatrix[COLS][ROWS]; transpose(matrix, transposeMatrix); printf("Original matrix:\n"); for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } printf("Transposed matrix:\n"); for (int i = 0; i < COLS; i++) { for (int j = 0; j < ROWS; j++) { printf("%d ", transposeMatrix[i][j]); } printf("\n"); } return 0; }
以上代码首先定义了一个二维数组matrix,然后定义了一个用于存储转置矩阵的二维数组transposeMatrix。transpose函数用于计算矩阵的转置,最后在主函数中输出原始矩阵和转置矩阵。