结构变量也可作为函数的实参传递。函数指针也可作为结构体的成员。
#include <stdio.h>
/*
时间:2022-05-11 19:58
作者:sgbl888
功能:结构与函数
知识点:
1、结构变量可作为函数的参数
2、函数指针也可作为结构体的成员
3、
*/
struct Student{
char name[20];
int num; //学号
float score; //成绩
void (*sty)(const char *name, const char *kc); //函数指针作为成员
};
void study(const char *name, const char *kc){
printf("%s 正在学习《%s》课程\n", name, kc);
}
void pinfo(struct Student *st){
printf("姓名:%s\n", (*st).name);
printf("学号:%d\n", st->num);
printf("成绩:%f\n", st->score);
}
int main(){
//定义结构变量st1
struct Student st1 = {
"张三",
100112,
68.5
};
//把结构变量取地址传给pinfo函数
pinfo(&st1);
//调用结构成员
st1.sty = study; //函数指针
st1.sty(st1.name, "C语言程序设计");
return 0;
}
运行结果:
姓名:张三
学号:100112
成绩:68.500000
张三 正在学习《C语言程序设计》课程