结构体中的指针

结构体中的函数指针

C++中面向对象的实现过程,其实是在结构体中加入函数指针用来调用成员函数的;
函数指针详解

include<stdio.h>
typedef void (*PRINT) (struct *pMM); // 声明一个函数指针,这个函数指针的参数为struct *pMM类型的
struct MM{
	int age;
	char* name;
	*PRINT pPrint;//定义一个结构体函数指针
};
struct MM* createMM(char *name,int age)//创建一个MM类型
{
	struct MM* mm = (struct MM*)malloc(sizeof(struct MM));
	assert(mm); //断言,防止mm这个空间开辟失败,如果开辟失败的话程序将不会实行
	//二次申请空间,因为开辟的mm的空间只有一个char类型的指针和一个int,四位存取的话肯定不够
	mm->name = (char *)malloc(sizeof(name));
	strcpy(mm->name,name); //字符赋值的话只能用strcpy函数
	mm->age = age;
	mm->pPrint = printMM;//把函数指针指向pPrint函数
	return mm;
};
void printMM(struct MM* pMM )
{
	printf("%s\t%d\n",pMM->name,pMM->age);
}

int main()
{
	struct MM* mm = createMM("小明",18);
	pPrint(mm);
	mm->pPrint(mm);
}
posted @   别抢我的零食  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示