指针函数

指针函数是一个函数,只不过指针函数返回的类型是某一类型的指针。

格式:

类型名* 函数名(函数参数列表)

如下代码存在问题

void test(char *p)
{
p = (char*)malloc(10);
return;
} int main()
{
char* p1 = NULL; test(p1);
return 1;
}

test函数执行完后,p1仍为NULL,调用test函数,实参p1为值传递,即使函数内申请的内存,函数外不会得到,可以使用函数指针的形式进行修改,如下:

char* test()
{
char* p = (char*)malloc(10);
memset(p, 0, 10);
return p;
} int main()
{
char* p1 = NULL; p1 = test();
return 1;
}

函数指针

函数指针是指向函数的指针变量。所以函数指针其实是指针变量,只不过该指针变量指向函数。

格式:

类型名 (*指针变量名) (函数参数列表)

函数指针的用途:

a.调用函数

b.做函数的参数.

调用函数使用:

/*
* 函数指针,调用函数
*/ int fun1(int a, int b)
{
return a + b;
} typedef int(FUNC*)(int a,int b) int main()
{
//方式一
int(*p)(int, int);
p = fun1;
printf("%d\n", p(1, 5));
//方式二
FUNC f = fun1;
printf("%d\n", f(1,5));
getchar();
return 1;
}

函数参数使用:

/*
* 函数指针,最为参数
*/ int fun2(int a, int b)
{
return a + b;
} int fun3(int a, int b, int(*f)(int, int))
{
return f(a, b);
} int main()
{
printf("%d\n", fun3(1, 5, fun2));
getchar();
return 1;
}

欢迎加群交流:C/C++开发交流

最新文章

  1. Swift 提示:Initialization of variable was never used consider replacing with assignment to _ or removing it
  2. ios cell左滑删除
  3. Linux下不同机器之间的文件拷贝
  4. Openmeeting 网页打开缓慢,视频卡的一个解决方法
  5. Const和ReadOnly区别及其用途--转载
  6. PostgreSQL与MySQL比较(转)
  7. chrome浏览器iframe兼容性问题,隐藏起来再显示滚动条消失?
  8. git 介绍及其使用总结
  9. webMagic解析淘宝cookie 提示Invalid cookie header
  10. www.netcraft.com查看站点服务器使用的是什么操作系统
  11. 02_HTML5+CSS详解第一天
  12. Exception 的 toString() 方法和 getMessage() 方法的区别
  13. 知识点:Mysql 索引原理完全手册(2)
  14. python使用selenium爬百度文库ppt并生成pdf
  15. sql day2
  16. Spark设计理念与基本架构
  17. centos7_ linux : Nginx安装手册
  18. NC nc开发工具java虚拟机参数
  19. ABP框架系列之三十三:(Module-System-模块系统)
  20. c++ 动态判断基类指针指向的子类类型(typeid)

热门文章

  1. Concurrent初探 --- Atomic 无锁
  2. meshing-圆锥网格划分
  3. 【转载】 迁移学习简介(tranfer learning)
  4. Tomcat重启Shell脚本
  5. Greenwich.SR2版本的Spring Cloud Feign实例
  6. SM30维护视图屏蔽按钮与增加选择条件
  7. LeetCode_168. Excel Sheet Column Title
  8. Java如何获取ResultSet结果中的每一列的数据类型
  9. 理解KNN算法中的k值-knn算法中的k到底指的是什么 ?
  10. Vue双向数据绑定简易实现