函数指针用法
来源:互联网 发布:闪电侠第三季人工智能 编辑:程序博客网 时间:2024/05/22 12:50
函数指针实际上是个指针,只不过这个指针指向一个函数,在调用函数的时候,只要使用指向这个函数的指针就可以了。函数指针声明语法如下:
T (*the_name)([parameter_list]);
the_name便是函数指针的名字,它指向一个函数,返回类型为T,参数列表parameter_list可选,参数列表中只需列出参数类型即可,参数名字可有可无。如下例子:
int (*p_add)(int, int);
p_add这个函数指针指向一个函数,返回类型为int,参数列表是两个int类型的参数。假设有如下函数:
int add(int num1, int num2)
{
return num1 + num2;
}
那么,p_add函数指针可以指向add()函数,两者的返回值类型、参数列表必须相同,赋值形式有两种,如下:
p_add = add; //不使用&
p_add = &add; //使用&
p_add函数指针使用方法也有两种形式,如下:
int result = p_add(1, 2); //用法同函数
int result = (*p_add)(1, 2); //这种用法更像指针
我们还可以用typedef来定义函数指针,如下:
typedef T (*the_name)([parameter_list]);
定义好了之后,就可以直接使用了:
typedef int(*p_func)(int, int);
p_func p_add = add;
p_func p_add = &add;
下面是一个具体的例子:
#include <stdio.h>int add(int, int);int minus(int, int);int multiply(int ,int);int devide(int , int);int main(void){ int (*p_add)(int, int); int (*p_minus)(int, int); p_add = add; p_minus = − printf("add:%d\n", p_add(1, 2)); printf("add:%d\n", (*p_add)(1, 2)); printf("minus:%d\n", p_minus(3, 4)); printf("minus:%d\n", (*p_minus)(3, 4)); typedef int (*p_func)(int, int); p_func p_multiply = multiply; p_func p_devide = &devide; printf("multiply:%d\n", p_multiply(5, 6)); printf("multiply:%d\n", (*p_multiply)(5, 6)); printf("devide:%d\n", p_devide(7, 8)); printf("devide:%d\n", (*p_devide)(7, 8)); return 0;}int add(int num1, int num2){ return num1 + num2;}int minus(int num1, int num2){ return num1 - num2;}int multiply(int num1, int num2){ return num1 * num2;}int devide(int num1, int num2){ return num1 / num2;}
1 0
- 函数指针的用法
- 函数指针的用法
- 函数指针的用法
- 函数指针的用法
- 函数指针用法
- 函数指针 用法
- typedef函数指针用法
- 函数指针用法说明
- 函数指针的用法
- typedef函数指针用法
- 函数指针的用法
- typedef函数指针用法
- 函数指针的用法
- c++指针函数用法
- typedef函数指针用法
- typedef函数指针用法
- typedef函数指针用法
- typedef函数指针用法
- 解决 Git For Windows 无法提交
- static 代码块
- Antiscroll 滚动条插件
- directshow 获取本地音频
- 【GPS】d文件转换为o文件
- 函数指针用法
- Fresco(各种特效)——播放gif
- (2.3.5)java关键字
- C语言单链表练习
- C++ Vector的用法
- 喜羊羊系列之【xshell】 ctrl+s 锁住问题
- C++11:深入理解右值引用,move语义和完美转发
- 位运算复习——字节的奇偶校验和反转一个字节中的二进制位
- C++中的引用与指针的区别