黑马程序员技术交流社区

标题: 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语言中的一种数据类型,所以一个函数的返回值也可以是指针类型的
        形式为:类型名 * 函数名(参数列表)
  1. <font size="2">/*应该知道当一个指针指向一个字符串首字符时,可以访问整个字符串
  2.         char *name = "Jack";
  3. */
  4. char *test()                      //返回值是指针   
  5. {
  6.         return "Jack";        //所以可以返回字符串
  7. }

  8. /*
  9. char test2()              //返回值是char类型
  10. {
  11.         return 'J';             //所以应该返回字符
  12. }
  13. */</font>
复制代码

2、指向函数的指针
        意思是说:函数也有地址,指针变量就是用来存储地址的,所以可以利用一个指针指向一个函数。其中,函数名就代表着函数的地址。
        形式:函数的返回值类型 (*指针变量名)(形参1, 形参2, ...);
  1. //定义个test函数
  2. viod test()            
  3. {
  4.         printf("123");
  5. }

  6. //定义个函数指针,(*p)是固定写法,代表指针变量p肯定指向函数
  7. void (*p)();
  8. //函数名即是地址,将地址传给p
  9. p=test;
  10. //利用指针间接调用test函数
  11. (*p)();
复制代码




作者: 陨石    时间: 2014-9-2 23:54
清晰明了,真不错,学习了。
作者: himym2005    时间: 2014-9-3 20:37
Jr_711 发表于 2014-9-2 23:51
1、返回指针的函数
        意思是说:指针也是C语言中的一种数据类型,所以一个函数的返回值也可以是指针 ...

谢谢~~~看明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2