目前位置: VCer资源中心 >>> VCer文章 >>> C++/MFC基础

[本帖已阅读1311次 分值70 回复0次] 张贴资源 发回信箱 控制面板

函数指针的使用

提供者:oases2008 张贴时间:2005-01-01 00:00:00.0 出处:http://www.jblook.cn 作者:不祥

函数指针的使用(2005-01-01 00:00:00.0)


oases2008


 
级别: VCer小兵
头衔: VCer会员

经验: 258
作品: 3
分会: 华北分会
注册: 2007-01-25 12:00:19.0
登录: 2007-10-30 16:38:36.0
“在C语言中,函数本身不是变量,但可以定义指向函数的指针,这种指针可以被赋值、存放于数组之中,传递给函数及作为函数的返回值等” --《The C Programming Language Second Edition》

下面给出几个简单的例子来说明指向函数的指针。

第一个例子说明指向函数的指针如何声明、赋值、调用。

#include<stdio.h>

#define TESTDATE 100

int func(int a)

{

    return printf("%d\n",a);

}

typedef int (*FuncPtrType)(int a);//函数指针类型的声明

int main()

{

    FuncPtrType fp = 0;  //函数指针(变量)的声明以及初始化.等同 int (*fp)(int a) = 0;

    fp = func;            //函数指针的赋值

    (*fp)(TESTDATE);      //函数指针的调用

    return 0;

}

第2个例子显示如何将指向函数的指针传递给函数、作为函数的返回类型。

#include<stdio.h>

#define MAX 100

int func(int a)

{

    return printf("%d\n",a);

}

typedef int (*FuncPtrType)(int a);//函数指针类型的声明

int* call(FuncPtrType fp = 0)//函数指针(形参)的的声明

{

    return fp;            //函数指针的返回

}

int main()

{

    FuncPtrType vfp, vfp2;

    vfp = hello;

    vfp2 = call(vfp);

    return 0;

}

本文转载自IT网it求职笔试真题库网

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/1000000000375.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

[回复该贴] [加入个人书签]
[投票结果]

A: 评分 10 0% (0 票)
B: 评分 5 0% (0 票)
C: 评分 0 0% (0 票)
D: 评分 -5 0% (0 票)
E: 评分 -10 100% (1 票)