1.指针函数:
类型说明符 *函数名(形参表)
{
.......... /*函数体*/
.......... /*函数体*/
}
其中函数名之前加了"*"号表明,这是一个指针型函数
2.函数指针:
类型说明符 (*指针变量名)();
例如:int (*pf)(int );
3.指针函数:例子
#include <stdio.h> #include <math.h> #include <stdlib.h> /* char *day_name(int n); int main() { int i; char *day_name(int n);//定义函数返回值是指针类型的函数 printf("input Day No:\n"); scanf("%d",&i); if(i < 0 ) exit(1); printf("Day No:%2d-->%s\n",i,day_name(i));//调用指针函数 return 0; } char *day_name(int n){ //静态指针数组 static char *name[] = { "Illegal day", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; return((n <1 || n>7 )? name[0]:name[n]); } */ char *day_name(char *name[],int n) { char *pp1,*pp2; pp1 = *name; pp2 = *(name + n); return ((n<1 || n>7)? pp1:pp2); } int main() { static char *name[] = { "Illegal day", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; char *ps; int i; char *day_name(char *name[],int n); printf("input Day No:\n"); scanf("%d",&i); if(i < 0) exit(1); ps = day_name(name,i); printf("Day No:%2d-->%s\n",i,ps); return 0; }
4.函数指针:例子
int max(int a,int b) { if(a>b)return a; else return b; } main() { int max(int a,int b); int(*pmax)(int, int);//定义参数列表为(int,int)的函数指针 int x,y,z; pmax=max;//将函数指针pmax ->指向函数max 的函数入口地址(首地址) printf("input two numbers:\n"); scanf("%d%d",&x,&y); z=(*pmax)(x,y); //等同于调用函数max(x,y); printf("maxmum=%d",z); }
5.总结
函数指针,是一种指针,指针指向的是函数的首地址,指向的类型是函数。
指针函数,是一种函数,函数的返回值类型是指针类型的函数。
原文地址:https://www.cnblogs.com/liusanjian/p/11689684.html
时间: 2024-11-05 06:29:17