zoukankan      html  css  js  c++  java
  • 【学习笔记】【C语言】指向函数的指针

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

     1 #include <stdio.h>
     2 
     3 
     4 double haha(double d, char *s, int a)
     5 {
     6     
     7 }
     8 
     9 /*
    10  掌握:
    11  1.看懂语法
    12  2.定义指向函数的指针
    13     double (*p)(double, char *, int);
    14     p = haha;
    15     或者
    16     double (*p)(double, char *, int) = haha;
    17  3.如何间接调用函数
    18  1> p(10.7, "jack", 10);
    19  2> (*p)(10.7, "jack", 10);
    20  */
    21 
    22 void test()
    23 {
    24     printf("调用了test函数
    ");
    25 }
    26 
    27 int sum(int a, int b)
    28 {
    29     return a + b;
    30 }
    31 
    32 int main()
    33 {
    34     // 定义指针变量指向sum函数
    35     // 左边的int:指针变量p指向的函数返回int类型的数据
    36     // 右边的(int, int):指针变量p指向的函数有2个int类型的形参
    37     int (*p)(int, int);
    38     
    39     p = sum;
    40     
    41     //int c = p(10, 11);
    42     
    43     //int c = (*p)(10, 11);
    44     
    45     int c = sum(10, 9);
    46     
    47     printf("c is %d
    ", c);
    48     
    49     
    50     return 0;
    51 }
    52 
    53 
    54 void test1()
    55 {
    56     // (*p)是固定写法,代表指针变量p将来肯定是指向函数
    57     // 左边的void:指针变量p指向的函数没有返回值
    58     // 右边的():指针变量p指向的函数没有形参
    59     void (*p)();
    60     
    61     // 指针变量p指向了test函数
    62     p = test;
    63     
    64     p();
    65     //(*p)(); // 利用指针变量间接调用函数
    66     
    67     //test(); // 直接调用函数
    68 }
     
  • 相关阅读:
    程序员如何利用空闲时间挣零花钱
    常见的数据交互之跳转页面传值
    一个能让cin和scanf 一样快的方法:
    HDU 4901 DP
    POJ 2823 线段树 Or 单调队列
    POJ 3264 线段树 ST
    POJ 3468 线段树+状压
    POJ 2777 线段树
    QQ 临时会话+图标 HTML代码
    POJ 1463 Strategic game
  • 原文地址:https://www.cnblogs.com/dssf/p/4601190.html
Copyright © 2011-2022 走看看