鱼C论坛

 找回密码
 立即注册
查看: 2153|回复: 6

[已解决]指针和二维数组 求教,太难受了- -

[复制链接]
发表于 2018-8-3 11:43:11 | 显示全部楼层    本楼为最佳答案   
先看这边的例子:
int a[10]; int *p = &a; 那么 p == &a[0] ;也就是说指针是指向数组的第一个元素

int temp[5] = {1,2,3,4,5};
int (*p)[5] = &temp;
int temp[5] 是不是跟 (*p)[5] 很像?所以 (*p)[5]是数组,但所存储的资料是地址。

你的例子:
int array[2][3] = {{0,1,2},{3,4,5}};
int (*p)[3] = array;        p 的跨度是 3

**(p+1)                       p 的跨度是 3, p+1 = 4,解引用 == 第四个元素 == 3
**(array +1)                 array的跨度也是 3
array[1][0]                  直接访问 array 的第二行,第一列
*(*(p+1)+2)                *(p+1) 还是指针(第二行,第一列),+2(往右边移动两格)
*(*(array+1)+2)          array 跟 p 是一样的
array[1][2]                    直接访问array 的第二行,第三列
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-2 05:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表