zoukankan      html  css  js  c++  java
  • 指针函数与函数指针

    1、明确谁是主体,前面是定语,后面是主体。

    指针函数:返回指针的函数

    函数指针:指向函数的指针

    2、函数类型

    函数包括:函数名,返回类型,形参表,修饰符。

    函数类型表明一类函数,这一类函数的返回类型和形参表相同,而与函数名无关。

    一个函数,把函数名去掉,就是函数类型。比如:

    int Fun (int a) --- 函数Fun,函数Fun的类型为 int (int a);

    对于函数类型:在返回类型和形参表之间,加上一个函数名,就表示一个特定的函数。在返回类型和形参表之间,加上一个指针名,表示指向这一类函数的指针。

    3、区分

    int * Fun(int a ) :函数名为Fun,返回类型为 int*

    int  (*Fun) (int a):函数指针,指向一类函数 int (int a)

    函数指针也是一种类型,去掉指针名,即int  (*) (int a),表示一类指针

    思考:函数既然能返回指向数据的指针,当然也可以返回指向函数的指针,原则上应该这样写:

    int  (*) (int a) G (int a); 实际上是这样写的:int  (* G(int a) ) (int a),

    阅读方法是按照优先级,由内到外。先看G (int a )是一个函数,形参表为int a,返回类型是 int  (*) (int a)

    为了便于理解,使用typedef,如下:

    typedef int  (* PF) (int a);

    PF G(int a)

    4、指针类型

    指针类型分为指向数据的指针和指向函数的指针,二者不能相互转换。

    5、函数不能返回另一个函数或者内置数组类型,但是,可以返回指向函数的指针,或者指向数组的指针。

    6、按理说,函数指针必须指向函数的地址,也就是

    int Fun(int a);

    int (*PF) (int) = &Fun;

    但这样写 int (*PF) (int) = Fun;也是可以的,因为发生了蜕变,Fun会自动转化为Fun的地址。

    对于函数来说,函数名就表示函数的地址。

  • 相关阅读:
    改变form里面input,textarea.select等的默认样式
    serialize() 方法
    纯css实现互动清单
    less学习笔记
    竖直手风琴导航菜单栏
    植树节快到了-那就种棵决策树吧
    简单写个logictic回归
    爬取纽约时报特定关键词新闻并计数
    (数学建模)非线性规划
    (CV学习笔记)看图说话(Image Captioning)-2
  • 原文地址:https://www.cnblogs.com/nzbbody/p/3328686.html
Copyright © 2011-2022 走看看