luo-qi

导航

 

 

今天看了一篇博客确实写的很好,是讲指针的,比较详细也比较通俗易懂。https://blog.csdn.net/k666499436/article/details/123906941

 

 

这个图片留存一下,把各种指针拆分的特别细致,这里主要强调的就是[]的优先级高于*,低于 ()。

 

int arr[5]; arr是一个5元素的整形数组

int *p[10];p与[]先结合是一个数组,数组有10个元素,每个元素的类型为int *

int (*p)[10];p与*结合是一个指针,指针类型是int(*)[10],数组指针指向一个数组,数组存储10个整形的元素

int (* p[10])[5]; p先与[]结合是一个数组,去掉数组名和元素个数p[10],剩下的是数组每个元素的类型为int(*)[5],该类型是一个数组指针指向数组有5个整形的元素。
总结:p是一个数组,每个数组的元素是一个数组指针,指针指向了存储5的整形的元素的数组

int (*p)(int , int );指向函数的指针,用来存放函数的地址,可以用指针变量调用该函数

int (*arr[5])(int , int );arr先与[5]结合是一个数组,去掉数组名和元素个数arr[5],剩下的int(*)(int ,int )是数组每个元素的类型是一个函数指针,
总结:arr是一个函数指针数组,数组的每个元素是一个函数指针

int (*(*pparr)[5])(int ,int);pparr先与*结合说明是一个指针,去掉数组名pparr剩下的int (*(*)[5])(int ,int)是指针类型在去掉 * 剩下的int (*[5])(int ,int)是指向数组的类型,该数组有5个元素每个元素是一个函数指针
总结:pparr是一个指向函数指针数组的指针,指向的数组有5个元素,每个元素是一个函数指针

 

这个可以随时来看看,检验是否能够区分,正确认识每一个指针的类型。

 

posted on 2022-11-15 17:28  L棋  阅读(38)  评论(0)    收藏  举报