函数指针初探

      函数指针

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

        函数指针变量的声明:typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型。

       以下实例声明了结构体函数指针变量 p,指向函数showStuInfo:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void  showStuInfo(int age,char* name){
   char buffer[1024] = {0};
   char* preSuffix="年龄:";
   char  ageSuffix[10] = {0};
   itoa(age,ageSuffix, 10);//将int转换成字符串
   strcat(buffer,preSuffix);
   strcat(buffer, ageSuffix);
    
   char* nameSuffix=" 姓名:";
   strcat(buffer, nameSuffix);
   strcat(buffer, name);
   printf("sut=%s",buffer);

}
     
 
struct Student{
   int age;
   char *name;
   /// 声明函数指针
   void(* p)(int,char*);
};
    

int main(int argc, char *argv[]) {    
    struct Student student;
    struct Student* stu = &student;
    (*stu).age=20;
    (*stu).name="liuping";
    (*stu).p = &showStuInfo;  
    stu->p((*stu).age,(*stu).name);
    return 0;
}

      运行打印结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值