1.指针数组
指针数组,是数组里存放的指针的数组
一维指针数组:类型名 *数组标识符[数组长度]”,例如int *arr[10],它是一个数组存放了十个int*类型的指针
2.数组指针
数组指针,是指指向数组的指针
例如:int(*p)[10],[]的优先级比*高,括号括起来后,(*p)的优先级高,所以是数组指针
[10]代表的就是这个数组指针所指向的数组有十个元素。要想调用这十个元素,可以*p[0][1],p[0][1]....。或者(*p)[0],(*p)[1]...
3.函数指针
函数指针,顾名思义是指向函数的指针
int (*p) (int int ) = add
类型说明符 (*函数名)(参数)
其实这里不能称为函数名,应该叫做指针的变量名。这个特殊的指针指向一个返回整型值的函数。
3.函数指针数组
顾名思义,是存放函数指针的数组
int (*p[10])(int int)
因为[]优先级比*级别高,因此p先于[]结合,是一个数组,然后再与*结合,是一个指针数组。
[10]就是存放了10个int *(int int)类型的数据。
int (*arr[3])(int int) = {NULL,Sub,Add};//三个函数地址
4.指向函数指针数组的指针
它和数组指针类似,只不过它指向的数组元素是函数指针类型
int (*(*p)[3])(int int) = &arr
因为(*p)[3]是一个数组指针
所以int (*(*p)[3])(int int) 是一个数组元素为函数指针类型的数组的数组指针
本文详细解析了指针数组、数组指针、函数指针及其组合应用的概念与使用方法,帮助读者理解这些复杂数据结构的工作原理。

1087

被折叠的 条评论
为什么被折叠?



