C/C++__函数指针

来源:互联网 发布:淘宝如何举报盗图 编辑:程序博客网 时间:2024/04/29 12:33

学好函数指针有着较为重要的意义,如Windows编程中WNDCLASS结构体的 lpfnWndProc 成员就是一个函数指针,下面介绍简单的函数指针应用。


void ToUpper(char *);

void ToLower(char *);

int round(double);


/**

*声明了一个名为pf的函数指针, 该函数指针可以指向一个函数

*该函数特点:返回值为void类型,该函数接受一个参数,参数类型为 char *型

**/

void (*pf)(char *);


/**

*声明了一个名为pk的函数指针, 该函数指针可以指向一个函数

*该函数特点:返回值为void类型,该函数接受一个参数,参数类型为 int *型

**/

void (*pk)(int *);


pf = ToUpper;//正确用法,ToUpper是函数ToUpper()的地址

pf = ToLower;//正确

pf = round;//错误, round为错误类型的函数

pf = Tolower();//无效,ToLower不是地址


尝试将不同返回值类型的函数赋值给函数指针:


错误信息:




下面演示下正确的用法

#include <cstdio>void print_v(int);int print_i(int);int main(){void (*pv)(int);int (*pi)(int);//pv = print_i;pv = print_v;pv(4);return 0;}void print_v(int value){printf("%d\n", value);}int print_i(int value){printf("%d\n", value);return value;}
程序截图如下:


1 0
原创粉丝点击