指针与二维数组的关系
来源:互联网 发布:淘宝潮男秋装 编辑:程序博客网 时间:2024/05/16 12:32
如下代码
#include <stdio.h>
int main(){
int a[3][2] = {0, 1, 2, 3, 4, 5};
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 2; j++)
{
printf("a[%d][%d] = %d\t", i, j, a[i][j]);
printf("*(*(a + %d) + %d) = %d\n",i, j, *(*(a + i) + j));
}
}
return 0;
}
得到的结果就是都是一样的,遍历数组中的元素的值。这说明,数组的值其实可以痛过指针的方式去得到。
上次已经说过,a代表的就是数组的首元素的地址,那么*a就是取出首元素值的操作。但那是针对于一维数组而言的。
那么对于二维数组来说,又是不一样的。但是,我们可以根据一维数组来推导二维数组。
二维数组,就是在一维数组的每一个格子里面,再细分为一个数组。
于是,原本一维数组的*a取的是一维数组的值,那么在二维数组中,它取的就是首行的值,也就是a[0][],这并不是某一个元素的值,而是一组元素,所以,取出来的并不是值,而仍然是地址,一个小数组的首元素地址。那么,我们如果想要取下一行的数组,就只要在a上+1,也就是*(a+1)。第i行就是*(a+i)。
那么,接下来的,就是取列已经取到了一维数组的首地址,那么接下来取出值就很简单了,依次类推,就是*(*a),这取的就是第一行的第一列,也就是a[0][0]。那么,要想取后面的,只要增加列就行了即*(*a+j)。那么,要想取出a[i][j]的值,就只要*(*(a+i)+j)就行了,如上面的代码。
这就是二维数组和指针的关系。
0 0
- 指针与二维数组的关系
- 探究二维数组与指针的关系
- C 二维数组与指针的关系
- 二维数组与指针的关系
- 指针与二维数组的关系
- 二维数组与指针的关系
- 二维数组与一维数组指针变量的关系
- 二维数组与数组指针关系
- 二维数组和二维指针的关系
- 二维指针和二维数组的关系
- 二维数组和二维指针的关系
- 解析二级指针与二维数组之间的关系
- 解析二级指针与二维数组之间的关系
- c++高级---C/C++二维数组---与指针的关系
- 二维数组与指针的关系及运用
- 二维数组和字符串与指针的关系
- 剖析C/C++二维数组与指针的关系
- 指针数组,数组指针,二级指针,二维数组的关系
- 数据压缩 DPCM编码
- 配置MyEclipse中Dynamic Web Module 3.0版本时报错
- MIT18.06课程笔记16:最小二乘法,线性回归
- 【基于SSH框架的个人博客系统06】头像文件上传与前后端分页机制
- CSS常用小技巧
- 指针与二维数组的关系
- maven环境配置
- IO与流的处理
- WEB前端开发笔记之ajax的跨域访问(搜索引擎篇)
- 设计模式之代理模式
- 面向对象与C++程序设计-运算符重载学习笔记
- hdu 敌兵布阵 (线段树)
- LeetCode之路:258. Add Digits
- 解决UITextView 长按手势冲突