欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

指针数组,数组指针,函数指针,函数指针数组,函数指针数组的指针

程序员文章站 2022-06-09 13:04:06
...

指针数组:

指针数组首先是个数组,其次,数组里面存放的元素是指针类型。

指针数组的书写形式:

int  *arr1[10]   //整型指针数组
char *arrr2[5]   //字符型一维指针数组
char *arr3[3][2]//字符型二维指针数组

请注意:由于下标引用符 [ ] 的优先级 高于 解引用操作符 所以,arr 先与[] 结合,说明是个数组,在于 结合,说明数组里面的内容是指针类型。


数组指针:

数组指针的落点是指针,这个指针指向数组。即指针存放的是数组的地址。

数组指针的的书写形式:

int  (*)arr[10]     //整型数组指针
char (*)arr2[5]     //字符型一维数组指针
char (*)arr3[3][2]  //字符型二维数组指针

注意:书写时由于操作符优先级的问题,必须先要给 加上括号,要先保证是一个指针。*


函数指针:

函数有自己的地址。

函数指针同样是个指针,这个指针指向函数。

函数指针的书写形式:

 int (*p) (int , int)  // 指针p指向函数,函数的有两个参数,都是整型,函数的返回值是整型
 void (*pfun)()     //pfun先与*结合,说明pfun是指针,指针指向函数,该函数没有参数,返回值为空

请注意:函数指针可以类比数组指针的书写形式,但是在书写时需要更加注意。以上面第一个函数指针为例,要写一个返回值是整型的函数指针。
1.保证是个指针,所以 *p
2.函数参数类型写在括号中,(int, int ),但是直接写成*p(int , int),会改变结合方向,这是对函数解引用,所以对于第一步中的指针写法,必须加上括号
3.在书写返回类型


函数指针数组:

函数中指针数组 可以 记做:函数指针的数组。由两部分组成,首先是个数组,其次数组里面存放的是函数指针。

函数指针的书写形式:

int  (*arr[10]) (int, int)        
char (*arr2[5]) (char, char)

请注意:函数 指针 数组, 只要完成这三者的正确书写就行。一般都是倒着写 先保证是个数组 然后 再是 指针,最后是个函数。以上面第一个为例, []先和 arr结合 ,说明是个数组,在于 结合,说明是个指针,最后将之前写的作为一个整体(当做函数指针的函数名),写入函数指针的形式。*
在实际使用函数指针数组的时候,使用顺序是,先用到数组,根据数组对应的下标找到函数指针,再根据指针调用相应的函数。


函数指针数组的指针:

说白了,这就是在函数指针数组基础上加了一个指针,这个指针存放 函数指针数组 的地址,即该指针指向 函数指针数组。

函数指针数组 的指针的书写形式:

void (*(*pfun)[10])(const char*)
int (*(*)p[5])(int, int)   //注释里面写的形式是错误的,但是有助于帮助理解int (*)((*p)arr[5]) (int,int)

请注意,函数指针数组 的指针,不难写,但是一定要有套路,按照顺序往下写!
指针数组,数组指针,函数指针,函数指针数组,函数指针数组的指针