c语言函数指针应用

小灰灰 2022-05-29 23:39 371阅读 0赞

函数指针

  1. 函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。函数指针可以像一般函数一样,用于调用函数、传递参数。
  2. 函数指针变量的声明:typedefint(\*fun\_ptr)(int,int);// 声明一个指向同样参数、返回值的函数指针类型。
  3. 以下实例声明了结构体函数指针变量 p,指向函数showStuInfo
  4. #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; //把函数指针指向showStuInfo函数
  5. stu->p((*stu).age,(*stu).name); return 0; }

#include
#include
#include

/* run this program using the console pauser or add your own getch, system(“pause”) or input loop */

void showStuInfo(int age,char* name){
char buffer[1024] = {0};

  1. char\* preSuffix="年龄:";
  2. char ageSuffix\[10\] = \{0\};
  3. itoa(age,ageSuffix, 10);//将int转换成字符串
  4. strcat(buffer,preSuffix);
  5. strcat(buffer, ageSuffix);
  6. char\* nameSuffix=" 姓名:";
  7. strcat(buffer, nameSuffix);
  8. strcat(buffer, name);
  9. printf("sut=%s",buffer);

}

  1. struct Student\{
  2. int age;
  3. char \*name;
  4. void(\* p)(int,char\*);
  5. \};

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;
}

在ide上运行打印结果如下:

70

发表评论

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

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

相关阅读

    相关 C语言-函数指针

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

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

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

    相关 c语言函数指针应用

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