前言
当了解过函数指针和指针函数、数组指针和指针数组后,只要隔了段时间又会搞混,每次都得再去查,这次索性自己写个加深印象。
函数指针
函数指针,其本质是一个指针变量,该指针指向这个函数。总结来说,函数指针就是指向函数的指针(它是个指针)。
声明格式:类型说明符 (*函数名) (参数)
如下:
int (*fun)(int x,int y);
指针函数
指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。
声明格式为:*类型标识符 函数名(参数表)
int *fun(int x,int y);
数组指针
数组指针:数组指针:是指一个指向数组的指针,它其实还是一个指针,只不过是指向数组而已(是个指针)
定义格式:
int (*a)[10];
由于[]的优先级高于,所以必须添加(*a).
指针数组
指针数组:是指一个数组里面装着指针,也即指针数组是一个数组(是个数组)
定义格式:
int *a[10];
如图:
总结
指针函数本质是一个函数,其返回值为指针。
函数指针本质是一个指针,其指向一个函数。
指针数组本质是一个数组,里面装着的是指针。
数组指针本质是一个指针,其指向一个数组。