C语言一维数组与二维数组详解及代码实例

简介: C语言一维数组与二维数组详解及代码实例

一、引言


在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函数用于计算矩阵的转置,最后在主函数中输出原始矩阵和转置矩阵。

相关文章
|
21天前
|
存储 编译器 C语言
C语言数组详解
C语言数组详解
22 1
|
22天前
|
C语言
C语言刷题(数组)
C语言刷题(数组)
|
5天前
|
安全 C语言
C语言8 数组与字符串
C语言8 数组与字符串
5 0
|
10天前
|
存储 编译器 定位技术
结构体数组在C语言中的应用与优化策略
结构体数组在C语言中的应用与优化策略
|
16天前
|
存储 编译器 数据库
结构体数组在C语言中的应用与优化技巧
结构体数组在C语言中的应用与优化技巧
|
20天前
|
C语言
C语言实现猜数字游戏:代码详解与函数解析
C语言实现猜数字游戏:代码详解与函数解析
13 0
|
21天前
|
存储 C语言
C语言中的多级指针、指针数组与数组指针
C语言中的多级指针、指针数组与数组指针
13 0
|
21天前
|
存储 C语言
C语言数组指针详解与应用
C语言数组指针详解与应用
17 0
|
21天前
|
机器学习/深度学习 C语言 Windows
程序与技术分享:C语言学生宿舍管理系统代码(可运行)
程序与技术分享:C语言学生宿舍管理系统代码(可运行)
15 0
|
22天前
|
C语言