C语言——二维数组

avatar
作者
筋斗云
阅读量:0

C语言中的二维数组是一种特殊的数据结构,它可以被看作是一个数组的数组,即“数组的矩阵”。二维数组允许你在两个维度上存储数据,通常用于表示表格数据,比如棋盘的布局、矩阵、学生成绩表等。

1.定义二维数组

二维数组的定义方式如下:

类型名 数组名[行大小][列大小];

例如,定义一个3行4列的整型二维数组:

int arr[3][4];

这里,arr 是一个二维数组的名称,它有3行4列,总共可以存储12个整型值。

2.初始化二维数组

你可以在声明二维数组的同时初始化它,也可以使用循环语句来初始化。

(1)直接初始化
int arr[3][4] = {       {1, 2, 3, 4},       {5, 6, 7, 8},       {9, 10, 11, 12}   };
(2)使用循环初始化
#include <stdio.h>      int main() {       int i, j, arr[3][4];       for(i = 0; i < 3; i++) {           for(j = 0; j < 4; j++) {               arr[i][j] = i * 4 + j + 1; // 示例填充逻辑           }       }          // 打印数组内容       for(i = 0; i < 3; i++) {           for(j = 0; j < 4; j++) {               printf("%d ", arr[i][j]);           }           printf("\n");       }          return 0;   }
(3)部分初始化

 可以在定义的时候,只对二维数组的部分元素赋初值,其余元素自动为0。 

3.访问二维数组元素

访问二维数组中的元素需要使用两个索引,一个表示行,另一个表示列。例如,arr[1][2] 访问的是第二行第三列的元素(注意,索引从0开始)。

4.二维数组的遍历

遍历二维数组意味着按照某种顺序访问数组中的每个元素。最常见的遍历方式是使用嵌套的for循环,外层循环遍历行,内层循环遍历列。

以下是遍历上述二维数组的一个例子:

#include<stdio.h>  int main() { 	int i; 	int j; 	int array[][3]={99,88,77,66,55,44,33,22,11};   	for(i=0;i<3;i++){             		for(j=0;j<3;j++){       			printf("array[%d][%d]=%d  ",i,j,array[i][j]); 		} 		putchar('\n'); 	}  	return 0; }

这段代码会按照从左到右、从上到下的顺序打印出二维数组中的每个元素,并在每打印完一行后换行。

array[0][0]=99  array[0][1]=88  array[0][2]=77 array[1][0]=66  array[1][1]=55  array[1][2]=44 array[2][0]=33  array[2][1]=22  array[2][2]=11

5.注意事项

  • 数组的大小(包括行数和列数)在声明时必须为常量表达式,不能是变量。
  • 访问数组时,索引值必须在数组的范围内,否则会发生越界错误,这可能导致未定义行为,包括程序崩溃。
  • 初始化二维数组时,可以只初始化部分元素,未初始化的元素将自动初始化为0(对于静态存储期的数组)。
  • 如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第1维(行)的长度可以不指定,但第2维(列)的长度不能省。

二维数组是C语言中非常基础且强大的数据结构之一,掌握它对于理解和使用更高级的数据结构(如结构体、指针数组等)至关重要。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!