函数指针变量
一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。
我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。
然后通过指针变量就可以找到并调用这个函数。
我们把这种指向函数的指针变量称为“函数指针变量”。
一般形式为:
类型说明符:表示被指函数的返回值的类型。
(*指针变量名): 表示“*”后面的变量是定义的指针变量 。
():表示指针变量所指的是一个函数。
一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。
我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。
然后通过指针变量就可以找到并调用这个函数。
我们把这种指向函数的指针变量称为“函数指针变量”。
一般形式为:
类型说明符 (*指针变量名)();
类型说明符:表示被指函数的返回值的类型。
(*指针变量名): 表示“*”后面的变量是定义的指针变量 。
():表示指针变量所指的是一个函数。
#include <stdio.h>
int max(int a, int b){
if(a>b) return a;
else return b;
}
main(){
int max(int a, int b);
int (*pmax)(); //定义函数指针变量
int x,y,z;
pmax = max;//被调用函数的入口地址(函数名)赋予该函数指针变量。
printf(" input two numbers:\n");
scanf("%d%d",&x,&y);
z=(*pmax)(x,y);//用函数指针变量形式调用函数
printf("maxnumber=%d",z);
}