函数指针

定义形式 

类型名 (* 指针变量名)(参数类型1, 参数类型2,…)

例如: int (*pf)(int ,char); 

表示pf是一个函数指针,它所指向的函数,返回值类型应是int, 该函数应有两个参数,第一个是int 类型,第二个是char类型。 



使用方法 

#include <stdio.h>   
void PrintMin(int a,int b)    
{  if( a<b )        
printf("%d",a);    
else      printf("%d",b); }   
int main()   
{       
void (* pf)(int ,int);  
int x = 4, y = 5;   
pf(x,y);    
return 0;  
}   




函数指针有什么用呢?

举个栗子

C语言快速排序库函数: 
 
void qsort(void *base, int nelem, unsigned int width,   int ( * pfCompare)( const void *, const void *)); 

其中绿色标亮部分很明显就是一个函数指针

要对数组进行排序

对数组排序,需要知道: 

1) 数组起始地址

2) 数组元素的个数 

3) 每个元素的大小(由此可以算出每个元素的地址)

 4) 元素谁在前谁在后的规则   


其中,参数 base指针指向数组起始位置,参数nelem给出了元素个数,width则是每个元素的大小,最后一个参数则是自己可以定义的一个比较规则的函数指针。

这里之所以要用到函数指针就是为了达成能够自主定义的效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值