C语言-函数指针

ゝ一世哀愁。 2023-10-17 17:06 151阅读 0赞

函数指针

函数指针是指向函数的指针变量。
函数指针本身首先应该是指针变量,只不过该指针变量指向函数。

C在编译的时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他变量一样。

用途: 调用函数和做函数的参数

函数指针的使用

其中void代表函数的返回值,fun_p:函数指针的名称,char* msg, char* title: 函数的参数列表。

  1. void msg(char* msg,char* title){
  2. //do something
  3. }
  4. void main(){
  5. /*函数指针
  6. void代表函数的返回值
  7. fun_p:函数指针的名称
  8. char* msg, char* title: 函数的参数列表
  9. */
  10. void(*fun_p)(char* msg, char* title) = msg;
  11. fun_p("消息内容", "标题");
  12. getchar();
  13. }
实例

定义了一个函数指针,可传入不同的函数,从而实现加饭、减法,亦可进行扩展,实现乘法、除法等,知道确保函数的参数和返回值相同即可。

  1. int add(int a, int b){
  2. return a + b;
  3. }
  4. int minus(int a, int b){
  5. return a - b;
  6. }
  7. //此函数需要传递一个函数指针参数
  8. //可以执行不同的函数
  9. void msg2(int(*func_p2)(int a,int b),int m,int n){
  10. //执行一段代码
  11. m++;
  12. //执行回调函数
  13. int r = func_p2(m, n);
  14. printf("%d\n", r);
  15. }
  16. void main(){
  17. msg2(add, 10, 20); //加法
  18. msg2(minus, 50, 10); //减法
  19. }

打印结果

  1. 31
  2. 41

发表评论

表情:
评论列表 (有 0 条评论,151人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C语言-函数指针

    函数指针 函数指针是指向函数的指针变量。 函数指针本身首先应该是指针变量,只不过该指针变量指向函数。 > C在编译的时,每一个函数都有一个入口地址,该入口地址就是函

    相关 C语言_函数指针实例

    自定义函数指针来实现C++面向对象的多态特性。 这里遇到一个问题:printf行缓冲区的问题,Linux不会一个字一个字的输出,而是等待缓冲区满了,一下输出,或者遇到换行符也

    相关 c语言函数指针应用

    函数指针          函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。函数指针可以像一般函数一样,用于调