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

相关文章
|
26天前
|
存储 编译器 C语言
【c语言】数组
本文介绍了数组的基本概念及一维和二维数组的创建、初始化、使用方法及其在内存中的存储形式。一维数组通过下标访问元素,支持初始化和动态输入输出。二维数组则通过行和列的下标访问元素,同样支持初始化和动态输入输出。此外,还简要介绍了C99标准中的变长数组,允许在运行时根据变量创建数组,但不能初始化。
35 6
|
29天前
|
存储 算法 C语言
C语言:什么是指针数组,它有什么用
指针数组是C语言中一种特殊的数据结构,每个元素都是一个指针。它用于存储多个内存地址,方便对多个变量或数组进行操作,常用于字符串处理、动态内存分配等场景。
|
1月前
|
存储 人工智能 BI
C语言:数组的分类
C语言中的数组分为一维数组、多维数组和字符串数组。一维数组是最基本的形式,用于存储一系列相同类型的元素;多维数组则可以看作是一维数组的数组,常用于矩阵运算等场景;字符串数组则是以字符为元素的一维数组,专门用于处理文本数据。
|
1月前
|
存储 C语言
C语言:一维数组的不初始化、部分初始化、完全初始化的不同点
C语言中一维数组的初始化有三种情况:不初始化时,数组元素的值是随机的;部分初始化时,未指定的元素会被自动赋值为0;完全初始化时,所有元素都被赋予了初始值。
|
1月前
|
存储 搜索推荐 C语言
深入C语言指针,使代码更加灵活(二)
深入C语言指针,使代码更加灵活(二)
|
1月前
|
存储 程序员 编译器
深入C语言指针,使代码更加灵活(一)
深入C语言指针,使代码更加灵活(一)
|
1月前
|
C语言 C++
保姆式教学C语言——数组
保姆式教学C语言——数组
17 0
保姆式教学C语言——数组
|
1月前
|
C语言
深入C语言指针,使代码更加灵活(三)
深入C语言指针,使代码更加灵活(三)
深入C语言指针,使代码更加灵活(三)
|
1月前
|
C语言
C语言数组
C语言数组
17 0
|
1月前
|
存储 C语言 索引
c语言回顾-数组(全网最详细,哈哈哈) (下)
c语言回顾-数组(全网最详细,哈哈哈) (下)
43 0