二维数组的遍历与利用sizeof关键字求数组的行数,列数,元素总数

本文介绍了如何遍历二维数组,包括数组下标、第一行首地址和二维数组首地址指针的方法,并利用sizeof关键字求解二维数组的行数、列数和元素总数。示例代码详细展示了这些操作。

在内存中并不存在二维数组,二维数组实际的硬件存储器是连续编址的,也就是说内存中只有一维数组。

定义一个数组a[2][3],那么a[0],a[1],分别表示数组第一行和第二行的首地址。

遍历二维数组a[L][C]的几种方法:

int main()

{

int a[3][4] = { 0 };

int i, j;

//数组下标遍历

for (i = 0; i < 3; i++)

{

for (j = 0; j < 4; j++)

{

printf("a[i][j]=%d ", i, j, a[i][j]);

}

printf("\n");

}

printf("\n-----------------------------\n");

//第一行首地址遍历</

### 二维数组遍历的实现方法 在编程语言中,二维数组通常被视为一个矩阵结构,可以通过嵌套循环来访问其所有元素。以下以 C 和 Java 两种语言为例,展示如何实现二维数组遍历。 #### C 语言中的二维数组遍历 C 语言支持通过指针数组下标两种方式访问二维数组中的元素。以下代码展示了如何使用数组下标形式进行遍历[^1]: ```c #include <stdio.h> int main() { int array[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int i, j; // 使用数组下标形式访问二维数组 for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("array[%d][%d] = %d\n", i, j, array[i][j]); } } return 0; } ``` 此外,还可以通过指针算术的方式访问二维数组中的元素[^1]。例如: ```c #include <stdio.h> int main() { int array[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int (*p)[3]; int i, j; p = array; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("*(p + %d * 3 + %d) = %d\n", i, j, *(p + i * 3 + j)); } } return 0; } ``` #### Java 语言中的二维数组遍历 Java 中的二维数组同样可以通过嵌套循环进行遍历。以下代码展示了如何使用增强型 `for` 循环(也称为 foreach 循环)来简化遍历过程[^3]: ```java public class Main { public static void main(String[] args) { int[][] array = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 使用传统 for 循环 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.println("array[" + i + "][" + j + "] = " + array[i][j]); } } // 使用增强型 for 循环 for (int[] row : array) { for (int element : row) { System.out.print(element + " "); } System.out.println(); } } } ``` #### 注意事项 - 在遍历二维数组时,必须确保索引值不超过数组的边界,否则会导致数组越界错误[^3]。 - 计算二维数组的长度时,可以使用 `sizeof` 函数(C 语言)或 `.length` 属性(Java 语言)[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值