现在的位置: 首页 > 综合 > 正文

函数指针

2014年09月11日 ⁄ 综合 ⁄ 共 754字 ⁄ 字号 评论关闭

指针变量可以指向一个函数,每个函数在编译时被分配了一个入口地址,称为函数指针。在C语言中,可以定义函数指针类型和函数指针变量,可以通过该指针变量调用指向的函数.

 

#include<stdio.h>
int max(int x, int y)
{
   int temp;
   if (x > y)
   {
       temp = x;
   }
   else
   {
       temp = y;
   }
   return temp;
}
/* 注意1:定义函数指针类型 */
typedef int (*PMAX)(int, int);
void main()
{
    
    /* 注意2:定义函数指针变量 */
    PMAX pmax;
    int i = 50, j = 60;
    /* 注意3:函数指针变量赋值 */
    pmax = max;
    /* 注意4:通过函数指针变量调用所指向的函数*/    
    printf("%d\n",(*pmax)(i, j));
}

 

注意1:定义函数指针类型的格式为:

typedef 返回值类型(*函数指针类型)([参数类型表]);

注意2:定义函数指针变量的格式为

函数指针类型 函数指针变量

注意3:函数指针变量的赋值可以直接使用函数名作为函数指针

注意4:通过指针变量调用所指向的函数有两种方法:

一种是(*指针变量名)(实参表),另一种是指针变量名(实参表)

以上代码也可以使用如下方式

#include<stdio.h>
int max(int x, int y)
{
   int temp;
   if (x > y)
   {
       temp = x;
   }
   else
   {
       temp = y;
   }
   return temp;
}
void main()
{
    /* 注意1:定义函数指针 */
    int (*PMAX)(int, int);

    /* 注意2:定义函数指针变量 */
    PMAX pmax;
    int i = 50, j = 60;
    /* 注意3:函数指针变量赋值 */
    pmax = max;
    /* 注意4:通过函数指针变量调用所指向的函数*/    
    printf("%d\n",(*pmax)(i, j));
}

 

抱歉!评论已关闭.