每个函数都有自己的内存地址,指针保存了函数的地址后就能指向函数了。

  1. #include <stdio.h>
  2.  
  3. double haha(double d, char *s, int a)
  4. {
  5.  
  6. }
  7.  
  8. /*
  9. 掌握:
  10. 1.看懂语法
  11. 2.定义指向函数的指针
  12. double (*p)(double, char *, int);
  13. p = haha;
  14. 或者
  15. double (*p)(double, char *, int) = haha;
  16. 3.如何间接调用函数
  17. 1> p(10.7, "jack", 10);
  18. 2> (*p)(10.7, "jack", 10);
  19. */
  20.  
  21. void test()
  22. {
  23. printf("调用了test函数\n");
  24. }
  25.  
  26. int sum(int a, int b)
  27. {
  28. return a + b;
  29. }
  30.  
  31. int main()
  32. {
  33. // 定义指针变量指向sum函数
  34. // 左边的int:指针变量p指向的函数返回int类型的数据
  35. // 右边的(int, int):指针变量p指向的函数有2个int类型的形参
  36. int (*p)(int, int);
  37.  
  38. p = sum;
  39.  
  40. //int c = p(10, 11);
  41.  
  42. //int c = (*p)(10, 11);
  43.  
  44. int c = sum(, );
  45.  
  46. printf("c is %d\n", c);
  47.  
  48. return ;
  49. }
  50.  
  51. void test1()
  52. {
  53. // (*p)是固定写法,代表指针变量p将来肯定是指向函数
  54. // 左边的void:指针变量p指向的函数没有返回值
  55. // 右边的():指针变量p指向的函数没有形参
  56. void (*p)();
  57.  
  58. // 指针变量p指向了test函数
  59. p = test;
  60.  
  61. p();
  62. //(*p)(); // 利用指针变量间接调用函数
  63.  
  64. //test(); // 直接调用函数
  65. }
 

【学习笔记】【C语言】指向函数的指针的更多相关文章

  1. C语言——指向函数的指针

    转载自:http://www.cnblogs.com/liangyan19910818/archive/2011/08/19/2145270.html C语言——指向函数的指针 函数类型 (* 函数指 ...

  2. C语言 指向函数的指针

    #include <stdio.h> int sum(int a, int b) { int c = a + b; printf("%d + %d = %d\n", a ...

  3. C语言指向函数的指针

    定义形式:类型 (*指针变量名)(参数列表); 例如:int (*p)(int i,int j); 在这里 int是函数的返回类型,*p是指向函数的指针,(int i,int j);是函数的参数 注意 ...

  4. C++学习笔记31,指向引用的指针(3)

    我们来看一个简单的指向引用的指针的样例. #include <iostream> using namespace std; int main(){ int x=10; int y=20; ...

  5. C++学习笔记:指向函数的指针

    #include <stdio.h> int sum(int a, int b) { return a+b; } int minus(int a, int b) { return a-b; ...

  6. 【C语言】14-返回指针的函数与指向函数的指针

    前言 前面我们花了接近3个章节学习指针,应该都感受到指针的强大了吧.指针可以根据地址直接操作内存中的数据,使用得当的话,不仅能使代码量变少,还能优化内存管理.提升程序性能.关于指针的内容还非常多,比如 ...

  7. 【C语言】-返回指针的函数与指向函数的指针

    本文目录 前言 一.返回指针的函数 二.指向函数的指针 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.i ...

  8. C语言基础语法之指向函数的指针

    指针是C语言的精髓,对于初学者来讲,指针是C语言语法学习中比较难的知识点,而这里面指向函数的指针更是不太容易理解. 下面给大家讲下怎样学习理解C语言中指向函数的指针及编程方法和使用例子. 注意:这是一 ...

  9. C语言中 指向函数的指针 简介

    引子:在学习CPrimerPlus的第十四章的14.13节中,遇到了如下三行文字,是有关指向函数的指针的,把我搞晕了. char * fump(); //返回指向char的指针的函数 char (* ...

随机推荐

  1. 全面整理的C++面试题

    C++面试题 1.是不是一个父类写了一个virtual 函数,假设子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的. private 也被集成,仅仅事派生类没有 ...

  2. Android游戏开发:物理游戏之重力系统开发--圆形自由落体Demo

    本节为大家提供有关物理游戏的知识,讲解了一个简单的圆形自由落体Demo的编写.. Java代码 package com.himi; import java.util.Random; import ja ...

  3. iOS开发——多线程OC篇&(十)多线程NSOperation基本使用

    NSOperation基本操作 一.并发数 (1)并发数:同时执⾏行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同一时间最多只能执行的任务的个数. (3)最⼤大并发数的 ...

  4. Network Link Conditioner模拟不同网络环境

    在Xcode4.1中有一个工具叫Network Link Conditioner,可以让用户模拟不同的网络连接和带宽,可供Mac和iOS开发者测试自己的程序在不同网络环境下的表现. 在Xcode4.3 ...

  5. Golang学习 - sync 包

    ------------------------------------------------------------ 临时对象池 Pool 用于存储临时对象,它将使用完毕的对象存入对象池中,在需要 ...

  6. C/C++ unit testing tools (39 found)---reference

    http://www.opensourcetesting.org/unit_c.php API Sanity AutoTest Description: An automatic generator ...

  7. 关于yarn的spark配置属性

    spark1.2.0 These are configs that are specific to Spark on YARN Property Name Default Meaning  spark ...

  8. WinForm实现跨进程通信的方法

    public class WinMessageHelper { private struct COPYDATASTRUCT { public IntPtr dwData; public int cbD ...

  9. iOS - 混合开发

    5.oc 与 js 混合开发 PhoneGap 专门做混合开发的,已经被另一个公司收购. WebViewJavascriptBridge 国内用的比较多 混合开发的好处:跨平台性.H5开发的时间成本, ...

  10. iphone 手机屏幕和UIView和UIWindowde 的主要的区别

    在iPhone5之前的iphone1,2,3,3s,4,4s都是320x480 iPhone5和5s的屏幕是320x568 iphone6的屏幕是375x667 iPhone6Plus的414x736 ...