C++ 函数指针的详解

1.函数指针

(1)一般来说函数通常包括一系列指令,通过编译后,在内存中占据了一块存储空间。

它有一个起始地址,这个起始(入口)地址就称为函数的指针。

(2)主函数在调用子函数时,就是让程序转移到函数的入口地址开始执行。

(3)我们可以定义一个指针变量用来指向函数,然后通过使用该指针变量调用此函数。

指向函数的指针:就是能够存放某个函数入口地址的指针变量。


总结了一下,函数指针有两个用途:一个是调用函数,另一个是做函数的参数 

函数指针定义的一般形式:

数据类型     (*指针变量名)(参数表);

例如:

int   (*p)(); // p为指向返回值为整型数据的函数的指针
float  (*q)(float,int); // q为指向返回值为浮点型数据的函数的指针


2.函数指针调用函数的步骤

(1)函数指针变量先要指向函数

定义了指向函数的指针变量,就可以在指针变量与特定函数之间建立关联,让指针变量指向特定函数。 

要注意一下:

(1)指针变量只能指向定义时所指定的一类函数。

  (2)一个指针变量可以先后指向多个不同的函数。


具体代码:

#include <stdio.h>

int  arr_add(int (*arr)[4], int n, int m )

void main()
{   
int a[3][4] = {1,3,5,7,9,11,13,15,17,19,21,23};
int  *p, total1, total2;
int  (*pt)(int (*arr)[4], int n, int m );
   pt=arr_add;
   total1 = arr_add( a,3,4 );
  total2 = (*pt)( a,3,4 );
   printf( "total1 = %d, total2 = %d\n", total1,total2 );
}

int  arr_add(int (*arr)[4], int n, int m )
{  
int  i, j, sum=0;
    for(i=0;i<n;i++)
for( j = 0; j < m; j++ )
        sum += arr[i][j];        
    return (sum);
}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北顾丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值