黑马程序员技术交流社区
标题: c语言中函数指针和指针函数的区别? [打印本页]
作者: himym2005 时间: 2014-9-2 21:11
标题: c语言中函数指针和指针函数的区别?
这2个东西傻傻分不清?有人说根本没有函数指针这个概念。。。。只是返回的值是指针罢了
还有函数指针都用在什么场合?看了网上的一大推关于这个的解释,但是根本不知道用在什么场景下
作者: Jr_711 时间: 2014-9-2 23:51
本帖最后由 Jr_711 于 2014-9-2 23:52 编辑
1、返回指针的函数
意思是说:指针也是C语言中的一种数据类型,所以一个函数的返回值也可以是指针类型的
形式为:类型名 * 函数名(参数列表)
- <font size="2">/*应该知道当一个指针指向一个字符串首字符时,可以访问整个字符串
- char *name = "Jack";
- */
- char *test() //返回值是指针
- {
- return "Jack"; //所以可以返回字符串
- }
- /*
- char test2() //返回值是char类型
- {
- return 'J'; //所以应该返回字符
- }
- */</font>
复制代码
2、指向函数的指针 意思是说:函数也有地址,指针变量就是用来存储地址的,所以可以利用一个指针指向一个函数。其中,函数名就代表着函数的地址。
形式:函数的返回值类型 (*指针变量名)(形参1, 形参2, ...);
- //定义个test函数
- viod test()
- {
- printf("123");
- }
- //定义个函数指针,(*p)是固定写法,代表指针变量p肯定指向函数
- void (*p)();
- //函数名即是地址,将地址传给p
- p=test;
- //利用指针间接调用test函数
- (*p)();
复制代码
作者: 陨石 时间: 2014-9-2 23:54
清晰明了,真不错,学习了。
作者: himym2005 时间: 2014-9-3 20:37
谢谢~~~看明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |