如何使用下标遍历二维数组

点击打开链接

 
  1. int my_2d_array[10][10];  
  2. //假定数组my_2d_array 已经预先被填充了数据  
  3. int i,j;                                //遍历这个数组  
  4. for(i=0;i<10;i++)                       //向下遍历各行  
  5.    for(j=0;j<10;j++)                    //穿越各列  
  6.       printf("%d", a[i][j]);  
  7. printf("\n");  
  8. 1.2.3  如何使用指针遍历二维数组  
  9. for(i=0;i<10;i++)  
  10.    for(j=0;j<10;j++)  
  11.       printf("%d",*(*(a+i)+j));  
  12. printf("\n"); 
### C语言指针遍历二维数组的第二种方法 在C语言中,除了使用数组下标访问和操作二维数组外,还可以通过定义指向整个一维数组的指针来进行遍历。这种方式可以更直观地处理多维数据结构。 #### 定义指向整型数组的指针变量 为了实现这一目标,首先需要声明一个能够存储地址并指向含有固定数量元素的一维数组类型的指针: ```c int (*ptr)[4]; // ptr 是一个指向 int[4] 类型对象 (即每行有四个整数) 的指针 ``` 这里`(*ptr)`表示这是一个指针而不仅仅是一个函数名;方括号内的数字指定所指向数组大小为4个整数宽度[^1]。 #### 动态分配内存给该指针或将已有二维数组赋值给它 当创建好上述形式的指针之后,可以通过动态分配内存或者直接让其指向已有的二维数组来初始化此指针: ```c // 假设我们有一个静态定义好的3x4矩阵a int a[3][4]; /* ... 初始化 a 数组 */ // 让 ptr 指向 a 这个三维空间中的起始位置 ptr = a; ``` 此时 `ptr` 已经成功绑定了二维数组的第一行地址,并且由于编译器知道每一列有多少项(`4`),因此可以直接利用算术运算移动到其他行上。 #### 遍历二维数组 接下来就可以像下面这样轻松地遍历整个二维数组了: ```c for(int i=0;i<3;++i){ for(int j=0;j<4;++j){ printf("%d ", (*(ptr+i))[j]); // 输出当前行列对应的数值 } putchar('\n'); } ``` 在这个循环里,`(ptr+i)`会计算出第`i`行的位置,再解引用得到那一行的具体内容——也就是长度为四的一个整形序列;最后加上索引`j`就能获取具体某一项的数据了。 这种方法不仅简化了代码逻辑,而且提高了可读性和维护效率。同时需要注意的是,在这种情况下,指针表达式的书写顺序非常重要,因为不同的组合可能会改变最终的结果意义[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值