美文网首页十天学会C语言程序员ios
C语言day09-07指向函数的指针-基本概念

C语言day09-07指向函数的指针-基本概念

作者: liyuhong165 | 来源:发表于2016-05-04 23:40 被阅读90次

pragma mark 指向函数的指针-基本概念

pragma mark 概念

/**
 对OC的block有很大的帮助
 
 指向函数的指针 的定义格式
 // 加上一个() 说明这个指针将来要指向 一个 函数
 // 函数有以下
 没有返回值没有参数
 有返回值没有参数
 没有返回值有参数
 有返回值有参数
 
 *              : 代表一个指针
 funtionP       : 代表指针变量的名称,区分
 (*funtionP)    : 代表将来指向一个函数
 void (*futionP)() 没有返回值没有参数的指针
 void           : 代表将来指向的函数 没有返回值
 ()             : 代表将来指向的函数 没有参数
 
 */
 

pragma mark 代码

#include <stdio.h>
void text() // 0x100000f20
{
    printf("我这行了\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;
    return res;
}

// 函数也会占用一块存储空间
// 因为函数也会占用一块存储空间,所以函数也有自己的地址
// 函数的地址保存在函数名中
// 函数名就是函数的地址  == 数组名就是数组的地址
int main()

{
    printf("text = %p\n",text);
#warning 如何定义一个指针 指向 函数
    /*
     指向函数的指针 的定义格式
     // 加上一个() 说明这个指针将来要指向 一个 函数
     // 函数有以下
     没有返回值没有参数
     有返回值没有参数
     没有返回值有参数
     有返回值有参数
     
     *              : 代表一个指针
     funtionP       : 代表指针变量的名称,区分
     (*funtionP)    : 代表将来指向一个函数
     void (*futionP)() 没有返回值没有参数的指针
     void           : 代表将来指向的函数 没有返回值
     ()             : 代表将来指向的函数 没有参数
  
     普通指针的定义格式
     数据类型 *指针变量名称
     int *p;
     */
#warning 解释
    /*
    void (*funtionP) () ;
    
    funtionP = text; // 注意: 千万不能写text()
//    text(); // 之前调用函数  0x100000ef0 ();
    (*funtionP)();  // 0x100000ef0();
    // text == funtionP
    funtionP();
    
//    int num = 10;
//    int *p = #
//    printf("%i\n",*p);
    
    int ages[] = {1,3,5};
    int *p;
    p = ages;  // ages就是数组的地址
     */
    /*
     ages[0];
     p[0];
     *(p + n);
     */
    
#warning 练习
    // 有返回值 没有参数
    int (*ageP) ();
    ageP = getAge; // 注意这里一定不要加() 加()表示调用函数 我们只需需要把函数的地址 赋给 指针
    ageP();
    printf("age = %i\n",ageP());
    
    // 没有返回值 有参数(形参)
//    void (*sumP) (int v1,int v2);
    void (*sumP) (int,int); // 可以省略形参的名称,只需要写数据类型
    sumP = sum;
    sumP(20,20);
    
    // 有返回值 有参数
    int (*sumP2) (int ,int);
    sumP2 = sum2;
    printf("sum2 = %i\n",sumP2(10,15));
    
    return 0;
}

相关文章

  • C语言day09-07指向函数的指针-基本概念

    pragma mark 指向函数的指针-基本概念 pragma mark 概念 pragma mark 代码

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

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

  • 函数指针

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

  • LCTHW - 18

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

  • 计算机基础的考察

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

  • C语言指向函数的指针

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

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

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

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

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

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

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

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

网友评论

本文标题:C语言day09-07指向函数的指针-基本概念

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