C语言遍历二维数组
时间: 2025-06-06 08:33:57 浏览: 14
### 如何使用C语言遍历二维数组
在C语言中,遍历二维数组通常通过嵌套循环实现。以下是一个完整的示例代码:
```c
#include <stdio.h>
int main() {
int array[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
for (int i = 0; i < 3; i++) { // 外层循环控制行数
for (int j = 0; j < 4; j++) { // 内层循环控制列数
printf("array[%d][%d] = %d\n", i, j, array[i][j]);
}
}
return 0;
}
```
此代码展示了如何逐行列出二维数组中的每一个元素[^2]。
如果需要更灵活的方式访问二维数组,也可以利用指针操作完成相同功能:
```c
#include <stdio.h>
int main() {
int array[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int (*ptr)[4] = array;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("*(ptr+%d)+%d = %d\n", i, j, *(*ptr + j));
}
ptr++; // 移动到下一行
}
return 0;
}
```
这段代码说明了如何通过指针间接访问二维数组的内容[^1]。
另外,在某些情况下可能希望按一维方式处理二维数组数据结构,则可采用如下方法简化索引计算过程并提高效率[^5]:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
int nums[ROWS][COLS];
int result[ROWS][COLS];
// 填充原始数组
for (int k = 0; k < ROWS * COLS; ++k) {
nums[k / COLS][k % COLS] = k;
}
// 输出转换后的结果
for (int m = 0; m < ROWS * COLS; ++m) {
result[m / COLS][m % COLS] = nums[m / COLS][m % COLS];
printf("result[%d/%d][%d%%%d] = %d\n", m, COLS, m, COLS, result[m / COLS][m % COLS]);
}
return 0;
}
```
以上三种不同风格的程序片段分别代表常规双重for-loop迭代法、基于地址偏移量技术以及优化版单重loop策略来解决同样问题即打印整个矩阵所有成员值的过程[^4]。
阅读全文
相关推荐


















