二维数组与指针琐碎【1】

这个基本知识点大家应该都清楚,我就不在赘述了

 

这里我就稍微整理一下我学习时遇到的问题

key1

指针的定义时,基类型很重要!在后面理解二维数组的指针时有一定作用。比如int *p、int (*p)[4]、int *p[4].

key2

行指针取*变成列指针,列指针取&变成行指针。这是一个恒定式。大概是行指针里面储存的是一行的地址,列指针储存的是每一行中单个列的地址。(其实行列指针的差别与他所表示的基类型也是相关的

key3

这里解释一下基类型,大致就是指针增加时是以基类型的字节数增加的,读取的时候也是一次性读取基类型那么大的内存

 我写文章的目的总结自己所学,所以是按自己的思路走的,可能会有点乱

这里我们来理解

int *p、int (*p)[4]、int *p[4]。

int *p就是定义一个基类型为int的指针,每次读取的内存就是4字节。

int (*p)[4]这个需要结合运算符优先级来理解。()的优先级一般最大,所以这里是需要先看(*p)是在定义一个指针,后面的[4]就表示这个p的基类型是4个int 。故而这个就叫做数组指针

其实我们理解的时候指针就是一个变量,不过里面储存的是地址罢了,所以它的定义也可以跟着整型变量之类一起理解。

int *p[4]这里的话[]的优先级高于*,所以这是一个有4个指针变量的数组,可以看成int* p[4]:4个int *类型的变量,而int*表示以Int为基类型的指针。

传参的时候一定要注意形参和实参的类型要相同!!!

发现自己的理解也不是多么深刻,不然怎么会说不清。呜呜呜呜

指针是有难度的,但依旧可以学懂!

好了今天就到这里

“温柔没有限度,努力没有尽头。”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值