指针的数组 烧脑
来源:互联网 发布:etl数据清洗工具 编辑:程序博客网 时间:2024/06/05 22:43
今天只讲一个问题,就是指针二维数组的理解:
int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};这是一个二维数组,它可以分为三个一维数组,即a[0],a[1],a[2],其中每个数组有四个元素,即a[0][0],a[0][1],a[0][2],a[0][3],a[1][0],a[1][1],a[1][2],a[1][3],a[2][0],a[2][1],a[2][2],a[2][3].
a[0]1 3 5 7
a[1]9 11 13 15
a[2]17 19 21 23
这里面数组a的首地址是1,即a[0][0],就是0行的首地址,然后a+1就是往下移动,变成第一行的首地址,a[1]的第一个地址,就是9,然后a[0]是第一个一维数组的数组名和首地址,因此为1,*(a+0)与 a[0] 等效的, 它表示一维数组a[0]中第 0 个元素的首地址,也就是1,同理,a+1是二维数组1行的首地址,等于9,a[1]是第二个一维数组的数组名和首地址,因此也为9,因此a+1、a[1]、*(a+1)是等同的,这样可以推断出a[i]=*(a+i)。
另外,a[0]也可以看成是a[0]+0,是一维数组a[0]的0号元素的首地址,而a[0]+1则是a[0]的第1个元素首地址,由此可得出a[i]+j则是一维数组a[i]的j号元素首地址,它等于&a[i][j],由a[i]=*(a+i)得a[i]+j=*(a+i)+j,由于*(a+i)+j是二维数组a的i行j列元素的首地址,所以,该元素的值等于*(*(a+i)+j)。
int i;
int j;
int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d\n",a[i]+j);
}
}
printf("%d,%d\n",a,*a);
printf("%d,%d\n",a[0],*(a+0));
printf("%d,%d\n",&a[0],&a[0][0]);
printf("%d,%d\n",a[1],a+1);
printf("%d,%d\n",&a[1][0],*(a+1)+0);
printf("%d,%d\n",a[2],*(a+2));
printf("%d,%d\n",&a[2],a+2);
printf("%d,%d\n",a[1][0],*(*(a+1)+0));
printf("%d,%d\n",a[0],*(a+0));
然后今天打印了上面的一个程序,这里面输出的除了倒数第二行是9,9,其他全是地址,这里我总结了一下,存在两个中括号,两个*号的,输出的都是值,其他的全部都是地址,这个可能会存在错误,但是理解不了的话背下来也是一种办法吧。然后今天学的东西比较绕,真的是刚刚可能理解了,一下子被别人讲解下,一下子就绕晕了,所以还是要再看下把。
- 指针的数组 烧脑
- 指针的指针 数组指针 指针数组
- 指针, 指针的指针, 数组, 指针数组, 数组指针
- 指针, 指针的指针, 数组, 指针数组, 数组指针
- 指针数组的指针数组
- 数组指针, 指针的指针
- 指针,数组指针,指针数组的剖析
- 指针数组,数组指针,指向指针数组的指针
- 指针实例:指针的指针,数组指针,指针数组
- 指针、数组指针、指针数组、指向指针的指针
- 数组指针,指针数组,二维数组,二维数组的指针
- 指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针
- 理解 指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针
- 指针数组,数组指针,函数指针,函数指针数组,指向函数指针数组的指针
- 指针数组 数组指针 函数指针 函数指针数组 函数指针数组的指针
- 学习:“指针数组”、“ 数组指针 ”、“函数指针”、“ 函数指针数组”、“指向函数指针数组的指针”
- 理解指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针
- 理解 指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针
- 情人节的自娱自乐——情书事件
- android RecyclerView的复杂布局
- Javascript实现import动态导入文件方法
- Oracle 11gR2 RAC 使用scan IP无法连接数据库(ORA-12545)
- ipython安装
- 指针的数组 烧脑
- 电视家没有cctv5的解决方法,一招轻松看奥运会!
- 分享 西安的炒房内幕
- 树莓派vim插件安装汇总
- 请教一下各位大侠,关于sql语句中使用case替换where条件的查询出现空行的原因
- 串口转socket通信
- 手机兼容性测试要求
- 解决多行cell 设置头像变圆 导致变卡的问题
- 移动端H5图片上传的那些坑