您的位置:首页 > 编程语言 > C语言/C++

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

2017-12-07 15:00 573 查看

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.指向函数指针数组的指针

它和数组指针类似,只不过它指向的数组元素是函数
bf3e
指针类型

int (*(*p)[3])(int int) = &arr

因为(*p)[3]是一个数组指针

所以int (*(*p)[3])(int int) 是一个数组元素为函数指针类型的数组的数组指针
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 函数 指针
相关文章推荐