结构体中的函数指针
2011-05-19 16:00
267 查看
#include"stdio.h" void fun(int x) { printf("函数指针%d/n",x); } struct node{ char name[20]; int prob; void (*f)(int x);//函数指针 }; void main() { //方法1 struct node xiaobo={ .name = "xiaobo", .prob = 0, .f = fun, }; printf("%s**,%d",xiaobo.name,xiaobo.prob); xiaobo.f(0); //方法2 struct node xiaobo1={"xiaobo1",1,fun}; printf("%s**,%d",xiaobo1.name,xiaobo1.prob); xiaobo1.f(1); //方法3 struct node xiaobo2={ name:"xiaobo2", prob:2, }; printf("%s**,%d",xiaobo2.name,xiaobo2.prob); struct node *xiaobo3; xiaobo3 = malloc(sizeof(struct node)); memset(xiaobo3,0,sizeof(*xiaobo3));//memset给结构题清0 printf("memset 初始化结果:/n"); printf("**%s**,%d**/n",(*xiaobo3).name,(*xiaobo3).prob); strcpy((*xiaobo3).name,"xiaobo3");//c语言在定义字符数组的时候才能使用=来初始化字符数组,char s[20] = "xiaobo3" (*xiaobo3).prob = 3; //memset(xiaobo3,0,sizeof(*xiaobo3)); printf("赋值初始后:/n"); printf("**%s**,%d**/n",(*xiaobo3).name,(*xiaobo3).prob); (*xiaobo3).f = fun; (*xiaobo3).f(3); //system("pause"); } /* 输出结果 xiaobo**,0函数指针0 xiaobo1**,1函数指针1 xiaobo2**,2memset 初始化结果: ****,0** 赋值初始后: **xiaobo3**,3** 函数指针3 */
相关文章推荐
- 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
- NDK探究之旅《六》—函数的指针、结构体、枚举、宏定义
- C语言用结构体指针作函数参数
- C/12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存
- Delphi 的内存操作函数(3): 给结构体指针分配内存
- 【C 语言】结构体相关 的 函数 指针 数组
- 细节决定成败(用结构体变量和结构体指针变量的指针做函数参数)
- 用结构体指针作为函数参数
- 结构体初始化及结构体指针.结构体数组.结构体函数的调用赋值等
- 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
- 结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析 .
- c 结构体 函数 指针
- [置顶] 敏感逻辑的保护方案:把函数名隐藏在结构体里,以函数指针成员的形式存储。
- 用结构体指针作为函数参数
- 结构体函数指针的初始化
- 结构体对函数指针的高级封装应用
- objective-C 使用包含函数指针的结构体
- 利用结构体作为函数参数时结构体指针的定义
- C++引用数组,函数指针,函数指针数组,结构体数组等学习
- 指针结构体函数-事实上能够这样具体理解