美文网首页十天学会C语言
第09天C语言(07):指向函数的指针-基本概念

第09天C语言(07):指向函数的指针-基本概念

作者: liyuhong | 来源:发表于2017-07-12 22:31 被阅读14次
一、概念
/*
 对OC的block有一定好处
  函数也会占用一块存储空间
  函数也会占用一块存储空间,所以函数也有自己的地址
  函数的地址保存在函数名中
  函数名就是函数的地址 == 数组名就是数组的地址
 
     指向函数的指针的定义格式
     void (*funtionP) ();
     *              : 代表一个指针
     funtionP       : 代表指针变量的名称, 区分
     (*funtionP)    : 代表将来指向一个函数
     void           : 代表将来 指向的函数 没有返回值
     ()             : 代表将来 指向的函数 没有参数
 
 ---
 没有返回值 没有参数
 没有返回值 有参数
 有返回值   没有参数
 有返回值   有参数
 */
二、代码
#include <stdio.h>
void text()
{
    printf("lyh\n");
}

int getAge()
{
    return 30;
}
void sum(int v1,int v2)
{
    int res = v1 + v2;
    printf("res = %i\n",res);
}

int sum2(int v1,int v2)
{
    int res = v1 + v2;
    printf("res = %i\n",res);
    return  res;
}

int main()
{
    printf("text = %p\n",text);
    
    /*
     没有返回值 没有参数
     void (*funtionP) ();
     没有返回值 有参数
     有返回值   没有参数
     有返回值   有参数
     
     指向函数的指针的定义格式
     void (*funtionP) ();
     *              : 代表一个指针
     funtionP       : 代表指针变量的名称, 区分
     (*funtionP)    : 代表将来指向一个函数
     void           : 代表将来 指向的函数 没有返回值
     ()             : 代表将来 指向的函数 没有参数

     普通指针的定义格式
     数据类型 *指针变量名称
     int *p;
     */
    
    /*
   void (*funcationP)();
    funcationP = text; // 注意: 千万不要写成text()
     text(); // 0x100000f30();
    (*funcationP)(); // 0x100000f30();
    //  text  == funtionP
    funcationP();
    */
    
    
//    int num = 10;
//    int *p = #
//    printf("%i\n",*p);
    
    /*

    int ages[] = {1,3,5};
    int *p;
    p = ages;// age就是数组的地址
     //    ages[0];
     //    p[0];
     //    *(p + n)
     */
    
    int (*ageP)();
    ageP = getAge;
    printf("age = %i\n",ageP());
    
    void (*sumP)(int,int);
    sumP = sum;
    sumP(10,20);
    
    
    int (*sumP2)(int,int);
    sumP2 = sum2;
    printf("sum = %i",sumP2(2,5));
    
    return 0;
}

相关文章

  • 返回指针的函数与指向函数的指针

    1.返回指针的函数 2.指向函数的指针 总结:这里的指向函数的指针,与c语言的函数,oc中的block有以下的共同...

  • 函数指针

    c语言中的指针可以指向整数、字符或者结构体类型等,同样也可以指向一个函数,这就是函数的指针。函数指针的值等于该函数...

  • 第09天C语言(07):指向函数的指针-基本概念

    一、概念 二、代码

  • LCTHW - 18

    18. 函数指针 C语言中的函数实际上都是指向一段代码的指针(这段代码就是函数的实现).就像创建指向结构体, 变量...

  • 计算机基础的考察

    语言语法(以C/C++为例)。 指针(数组),函数指针,操作符运算顺序,const(常指针与指向常量指针),sta...

  • C语言指向函数的指针

    指向函数的指针 计算机也会给函数分配存储空间, 既然函数会分配内存空间, 函数也有自己的地址, 所以指针变量也可以...

  • iOS开发 -- C语言基础11(返回指针的函数与指向函数的指针

    iOS开发 -- C语言基础11(返回指针的函数与指向函数的指针) 前言 前面我们花了接近3个章节学习指针,应该都...

  • C语言特性(函数与指针)

    函数与指针 用函数指针变量调用函数 当定义函数之后,C语言允许定义一个指针变量来指向该函数,接下来就可通过该指针变...

  • Head First C学习之"函数"指针

    位于Head Frist C第318页: 函数名是指向函数的指针 函数名也是指针变量。 当你创建一个函数的同时,也...

  • C++程序设计(北京大学) 23/40

    郭炜 C++语言是特别讲究效率的语言,对效率是锱铢必较的。 01 | 函数指针 函数指针,用来指向变量的地址。有起...

网友评论

  • 新海说:这一点没有看懂
    liyuhong:@风的自由者 意思是 比如有一个函数 需要用指针的方式去调用

本文标题:第09天C语言(07):指向函数的指针-基本概念

本文链接:https://www.haomeiwen.com/subject/amsihxtx.html