【C语言基础】对指针数组,数组指针,函数指针, 函数指针数组,指向函数指针数组的指针的理解

本文详细解析了指针数组、数组指针、函数指针及其组合应用的概念与使用方法,帮助读者理解这些复杂数据结构的工作原理。

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) 是一个数组元素为函数指针类型的数组的数组指针


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值