今日掌握新知识点:理解数组指针与指针数组之间的区别
int* p1[10] int(*p2)[10]
这两个长得很像的玩意就是我们的指针数组和数组指针。区别在于是否加了(),优先级不同导致产生的结果也会不同。
第一个是我们的指针数组,因为没有小括号(),p1先和后面的[10]结合,告诉你p1[10]我们是一个整体是一个数组,什么数组?指针数组。里面有十个元素全都是int*。这个int*就是我们的整形指针,通过这个整形指针我们可以找到一个整形。有十个整形指针我们就可以访问到十个整形。侧重点在于后两个字数组。本质上是一个数组,用来存储指针的这么一个数组,可以是int*,float*,char*......
第二个是我们的数组指针,首先有个小括号,里面p2和前面的*结合告诉你,我们这是一个指针,什么指针呢?哦,指向后面包含了十个元素的数组的这么一个指针,侧重点在于后面两个字指针,通过我们的这么一个指针可以找到对应的数组,所以我们称它为数组指针,可以找到数组的指针。
类比记忆:字符指针char*——>指向字符的指针
整形指针int*——>指向整形的指针
浮点型指针float*——>指向浮点型的指针
注:数组指针的书写不可省略数组的元素个数
即(不能 int(*p1)[],里面的元素个数不能省略,这个代表了你指针指向数组中的元素个数)
随便记点东西,之后还要补充的