这个基本知识点大家应该都清楚,我就不在赘述了
这里我就稍微整理一下我学习时遇到的问题
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为基类型的指针。
传参的时候一定要注意形参和实参的类型要相同!!!
发现自己的理解也不是多么深刻,不然怎么会说不清。呜呜呜呜
指针是有难度的,但依旧可以学懂!
好了今天就到这里
“温柔没有限度,努力没有尽头。”