27、函数指针
来源:互联网 发布:网络纠纷管辖问题 编辑:程序博客网 时间:2024/06/16 18:15
在 C 语言中,与数组名相似的函数名其实也代表一个地址值。因此可以用指针变量指向函数。函数具有不同的类型,不同函数的类型由其返回值确定,因此,指向函数的指针本身也是有不同类型的区别。
指向函数的指针即函数指针,一般定义如下:
函数类型说明 (*函数名)( );
例如定义: int (*MyFunction)();
这个定义表示 Myfunction 是一个指针,这个指针指向的是一个函数,而这个函数本身的返回值类型为整型。这样定义后,Myfunction 指针可以指向任意一个返回值类型为整型的函数。
注意: *MyFunction() 表示的是 MyFunction() 是一个返回值为指针的函数。
// 利用函数指针,执行不同的函数#include<stdio.h>int printA(){ printf("A\n"); return 1;}int printB(){ printf("B\n"); return 2;}void main(){ int (*pf)(); // 定义函数指针 pf int result; pf = printA; // pf 指向printA 函数的地址 result = (*pf)(); // 利用函数指针 调用 printA printf("result = %2d\n",result); pf = printB; // pf 指向printB 函数的地址 result = (*pf)(); // 利用函数指针 调用 printB printf("result = %2d\n",result);}
定义一个参数类型为函数指针的函数,通过该函数的调用来选择执行不同的函数
// 利用函数指针,执行不同的函数#include<stdio.h>int printA(){ printf("A\n"); return 1;}int printB(){ printf("B\n"); return 2;}int f(int (*p)()){ int r; r=(*p)(); return r;}void main(){ int result; result = f(printA); printf("result = %2d\n",result); result = f(printA); printf("result = %2d\n",result);}
0 0
- 27、函数指针
- 指针函数 函数指针
- 函数指针/指针函数
- 指针函数&函数指针
- 函数指针 指针函数
- 函数指针 指针函数
- 指针函数,函数指针
- 函数指针,指针函数,
- 指针函数,函数指针
- 函数指针 指针函数
- 函数指针、指针函数
- 指针函数&函数指针
- 函数指针 指针函数
- 函数指针 指针函数
- 函数指针&指针函数
- 指针函数 函数指针
- 指针函数 &函数指针
- 函数指针&指针函数
- Linux减少time_wait方法
- 字符编码
- 非 root 下安装 MySQL 5.6
- NuGet的简单使用
- SQL注入系列之PHP+Mysql手动注入(二)----字符型
- 27、函数指针
- 深入浅出RxJava_02[订阅深入&异常处理]
- Servlet3.0异步处理
- nefu 120 梅森素数 【Lucas-Lehmer】【miller_rabin】
- java main方法
- 快速选择
- 二叉树-你必须要懂!(二叉树相关算法实现-iOS)
- PDA开发从入门到精通(投稿公司报纸)
- hdu 1874 畅通工程续(迪杰斯特拉优先队列,floyd,spfa)