函数指针
来源:互联网 发布:小人书软件下载 编辑:程序博客网 时间:2024/05/29 16:19
函数指针,顾名思义,首先,它是一个指针,其次,该指针指向一个函数。其作用,一般有两个,一是调用函数,二是做函数的形参。
函数指针
下面是一个函数声明:
int add (int a,int b);
而函数指针则为:
int (*add)(int a,int b);
需要注意的是第一,括号必须加括号,将函数名与指针结合在一起,否则是指针函数;第二,指针函数的声明和调用,类型必须一致。
一个示例如下:
#include <stdio.h>int add(int a,int b){ return a+b;}int main(){ //函数指针的定义与初始化 int (*funptr)(int,int) = add; //调用函数指针 int sum = funptr(2,4); printf("%d",sum); return 0;}
函数指针数组
函数指针数组,是以数组的形式,对函数指针进行组织,一般有两种方法。
第一:类似于数组的方式直接定义
#include <stdio.h>int add(int a,int b){ return a+b;}int minus(int a,int b){ return a-b;}int main(){ int a,b; //类似于数组的方式直接进行定义 int (*funptr[])(int,int) ={add,minus}; a = (funptr[0])(2,4); b = (funptr[1])(2,4); printf("%d,%d",a,b); return 0;}
方法二: 借助于typedef
#include <stdio.h>#include <stdlib.h>#include <others.h>#include <sort.h>int add(int a,int b){ return a+b;}int minus(int a,int b){ return a-b;}//声明一个函数指针数组typedef int (*funptr[])(int,int);int main(){ int a,b; //定义函数指针数组,funptr已经为数组类型,此时fpt不能定义为 //fpt[],会报错 funptr fpt ={add,minus}; a = (fpt[0])(2,5); b = (fpt[1])(2,5); printf("%d,%d",a,b); return 0;}
0 0
- 指针函数 函数指针
- 函数指针/指针函数
- 指针函数&函数指针
- 函数指针 指针函数
- 函数指针 指针函数
- 指针函数,函数指针
- 函数指针,指针函数,
- 指针函数,函数指针
- 函数指针 指针函数
- 函数指针、指针函数
- 指针函数&函数指针
- 函数指针 指针函数
- 函数指针 指针函数
- 函数指针&指针函数
- 指针函数 函数指针
- 指针函数 &函数指针
- 函数指针&指针函数
- void指针 函数指针
- 祭----------------一次查杀linux木马的经历
- 在表格里加动态数据
- Item 46:需要类型转换时,应当在类模板中定义非成员函数
- jodaTime学习用例
- php中抽象类和接口的概念与区别
- 函数指针
- ios 开发中零碎易错知识点
- Java 单例模式详解
- UML概述
- C++11实现一个自动注册的工厂
- Nginx出现413 Request Entity Too Large错误解决方法
- iframe与主框架跨域相互访问方法
- Spring-boot中读取config配置文件的两种方式
- 问题