(一)指向函数的指针
指针可以指向函数 指针存放函数的地址
一个函数在编译时自动分配一个入口地址-----函数的地址(指针)
①定义:
数据类型 (*指针变量名)(函数参数列表);
int (*p)(int,int); //本质为指针
指针变量p指向一个函数,该函数有两个int参数,返回值是int
②指向:用指针调用函数前,必须先使指针指向该函数
p=max;
③调用:
方法:用*p代替函数名
C=(*p)(a,b)
程序举例:
#include<stdio.h>
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int a=2,b=3;
int c;
int (*p)(int,int); //定义指向函数的指针
p=max; //指向
c=(*p)(a,b); //调用
printf("%d",c);
}
(二)返回指针值的函数
类型说明符 *函数名(参数列表)
int * fun(int x,int y); //本质为函数
本质是一个函数,函数名为fun, 有两个参数,返回值为指针,指向int数据
(三)二级指针(指向指针的指针)
指向指针的指针变量中存放的是另一指针变量的地址,故称其为指向指针的指针变量。
指向指针的指针变量的定义的一般形式为:
类型说明符 **变量名;
注意:“**”是指向指针的指针变量的标志。
程序举例:
int **p1;
int *p2;
int i=3;
p2=&i;
p1=&p2;
**p1=5; //二级间接寻址


