指针与二维数组

本文详细解读了二维数组的存储原理,包括元素指针、值访问、行指针和列指针的概念,并探讨了它们在内存中的实际布局。通过实例演示,帮助读者理解二维数组背后的数据组织方式和指针操作技巧。

一个阅读

int **指针问题

指针本身是存放在栈区的

1.二维数组的存储

如何理解二维数组?我们以二维的方式理解二维数组,它在存储的时候却是唯一的。
例如:
int a[3][4] = {1,3,5,7,9,11,13,15,17,19,21,23};

2.二维数组中的各种指针理解

(1)元素指针: *(a+i)+j, 等价于a[i]+j, 等价于&(a[i][j]), 表示元素a[i][j]的地址
(2)元素的值: *(*(a+2)+3),等价于*(a[2]+3), 等价于a[2][3],表示元素a[2][3]的值
(3)列指针:  *(a+2), 等价于 a[2]
(4)列指针:  *a, 等价于*(a+0),也等价于a[0]
(5)行指针a
(5)行指针a+i:

二维数组a[i][j]的行指针的步长是一维数组a[j]的字节数,
二维数组a[i][j]的列指针和元素指针的步长是a[i][j]元素的字节数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值