结合typedef更为直观的应用函数指针

来源:互联网 发布:苹果电脑不能淘宝付款 编辑:程序博客网 时间:2024/06/04 19:48

“函数指针”的本质是一个指针变量,只不过该指针变量指向函数。

1:简单应用

形式1:返回类型(*函数名)(参数表)

view plaincopy to clipboardprint?
  1. #include <stdio.h> 
  2.  
  3. char* (*test)(char *);//定义一个函数指针,使用之前对其赋值 
  4. char* fun(char *ch)//定义一个普通函数 
  5. {  
  6.     return ch; 
  7.  
  8. void main() 
  9.     test = fun;//对函数指针赋值 
  10.     printf("%s\n",test("hello world")); 

2:结合typedef 应用函数指针

形式2:typedef 返回类型(*函数名)(参数表)

view plaincopy to clipboardprint?
  1. #include <stdio.h> 
  2.  
  3. typedef char* (*TEST)(char *);//使用typedef定义一个函数指针类型 
  4. TEST test;//定义函数指针 
  5.  
  6. char* fun(char *ch)//定义一个普通函数 
  7. {  
  8.     return ch; 
  9.  
  10. void main() 
  11.     test = fun;//对函数指针赋值 
  12.     printf("%s\n",test("hello world")); 
typedef的功能是定义新的类型。

第一句就是定义了一种TEST类型的函数指针。该函数返回类型为char * ,参数类型为char * 。在下面的代码中可以像int,char一样使用TEST类型了。

第二句利用TEST类型定义来一个变量test可以像平常一样使用了。

相比第一种方法,此方法较直观


3:结合typedef 应用函数指针数组

形式3:typedef 返回类型(*函数名[ ])(参数表)

view plaincopy to clipboardprint?
  1. #include <stdio.h> 
  2.  
  3. char* fun1(char *ch)//定义一个普通函数 
  4. {  
  5.     return ch; 
  6.  
  7. char* fun2(char *ch)//定义一个普通函数 
  8. {  
  9.     return ch; 
  10.  
  11.  
  12. void main() 
  13.     typedef char* (*TEST[2])(char *);//使用typedef定义一个函数指针类型 
  14.     TEST test = {fun1,fun2}; 
  15.  
  16.     printf("1:%s\n 2:%s \n",test[0]("call fun1"),test[0]("call fun2") ); 
相比第一种方法,此方法更为直观
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 房产证户口本信息泄漏怎么办 户主迁走了户口怎么办 户口本丢了应该怎么办 户口本遗失了应该怎么办 户口迁出河南怎么办居住证 居住证学历写错怎么办 换单位了档案怎么办 辞职一年了档案怎么办 上海租房网签怎么办 户口本主页掉了怎么办 居转户办理中离职怎么办 上海居转户没有职称怎么办 上海居转户0税单怎么办 居转户出现零税怎么办 遇假记者敲诈怎么办 液氮挥发太快怎么办 高铁上空调太冷怎么办 文登市昆嵛酒店怎么办 厦漳泉同城包怎么办 亲戚朋友总是蹭吃蹭喝怎么办啊 开车上班总有蹭车的怎么办 食堂的饭难吃怎么办 租亲戚的房子怎么办 饭菜罩子生虫怎么办 食堂吃出虫子怎么办 缺氧没有煤炭了怎么办 缺氧没有金属了怎么办 白色衣服带红色怎么办 如果买方退回假货怎么办 饰品氧化变黑了怎么办 银放久了变黄怎么办 真银变色了怎么办 古装头饰变色了怎么办 液晶电视遥控器坏了怎么办 纯银手镯发黑怎么办 银色项链黑了怎么办 线切割割铜割不动怎么办 楼房一直不动工怎么办 买火车票待审核怎么办 太原动车月票怎么办 发票上没有日期怎么办