目录
int(*p1)(int x , int y) = &Add
数组指针变量
本质
一个指向一个数组的指针变量
格式
int* p1[10];
int(*p2)[10];
上面的代码中
p1先和【】结合,是一个数组,格式为int*型
p2和*先结合,是一个指针,指向一个有10个成员的int型数组
p2就是数组指针变量
初始化
int a[10] = { 0 };
int(*p2)[10]=&a;
注意:初始化时给的成员大小要和数组一致,如果a【5】,那么p2也是【5】
二维数组传参的特征
形参的部分可以写成数组,也可以写成数组指针形式
函数指针变量
学前须知
函数也是有存放地址的,函数名就是函数的地址,可以通过&函数名的方式来获得函数的地址
格式
int Add(int x, int y)
{
return x + y;
}
int main()
{
int(*p1)(int, int) = Add;
return 0;
}
上面的代码中
int(*p1)(int , int) = Add 就是对函数指针的说明
int是该指针所指向函数的返回类型
(*p1)是函数指针变量的名称
(int,int)是所指向函数的参数类型和个数
说明的两种写法
int(*p1)(int , int ) = Add
int(*p1)(int x , int y) = &Add
上面的代码中的x和y可写可不写,&符号也是可写可不写
函数指针数组
概念
把函数的地址存到⼀个数组中,那这个数组就叫函数指针数组
格式
int (*pa[3])();
pa先和【】结合,说明它是一个数组,内容是int(*)()类型的指针函数
回调函数
概念
回调函数就是⼀个通过函数指针调⽤的函数
如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数 时,被调⽤的函数就是回调函数