函数指针指针函数,复杂函数

函数指针:指向函数的指针,“数据类型”(*fun)(参数列表)“  void*(*fun)(int*,int*)

int (*p)(char)     p被声明为一个函数指针,这个函数带一个char类型的参数,并且有一个int 类型的返回值

char ** (*p)(float,float);  带两个float类型参数、返回值是char 类型的指针的指针函数

void * (*a[5]) (char * const ,char * const)   带两个char类型的const指针函数、无返回值的函数指针

 

指针函数:返回值是函数的指针,”数据类型“ *fun(参数列表) char* fun(int*,int*)

步骤:

一:第一函数指针:int (*pfun)(int*,int*):

二:定义函数:int fun(int*,int*);

三:把函数的地址赋给函数指针:pfun=fun

四:通过函数指针去调用这个函数"(*pfun)(p,q);",pfun是函数地址,*pfun函数本身。

 

const 阻止变量被改变

int * const r=&n;     int类型const指针

const int *p; int const *q;  const int类型指针

const int * const p=&n;     const int类型const指针

 

typedef 

typedef工具是一个高级数据特性,利用typedef可以为某一类型自定义名称

 

右左法则

从最内部的括号开始阅读声明,向右看,然后想左看。当你碰到一个括号是就调转阅读的反向。括号内的所有内容都分析完毕就跳出括号的范围。这样继续,直到整个声明都分析完毕。

当第一次开始阅读声明时,必须从变量名开始而不是从最内部括号。

int * (*(*fp1) (int) ) [10];

从变量名开始——fp1;

往右看,什么也没有,碰到了),因此向左看,碰到一个*——一个指针。

跳出括号,碰到一个(int)——一个带一个int 参数的函数。

向左看,发现一个*——(函数)返回一个指针。

跳出括号,向右看,碰到【10】 ——一个10元素的数组。

向左看,发现一个*——指针。

向左看,发现int——int类型。

fp1 被声明成为一个函数指针,该函数返回指向指针数组的操作。

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值