zoukankan      html  css  js  c++  java
  • 函数声明中的指针

    int  a

      a是一个int型变量

    int  func()

      func是一个返回int类型的无参函数

    int  *a:

      a是一个指向int类型变量的指针

    int  *func()

      相当于int  *func()),func是一个函数,返回值为指向整型的指针

      *不是用来定义func,说明返回值是指针

    int *func)()

      func是一个指针,指向一个返回值类型为int的无参函数

      *用来定义指针,与返回值无关

     

    小结:

    先判断是函数还是指针

    函数:其后()里的是参数,函数名前所有符号都说明了返回值

    指针:如果后面有(),说明是函数指针,不包括*的前面所有的符号说明了指向的函数的返回类型

     

    关于类型转换:

    1 某个类型a想转换成int a

      (inta,即(int)表示向int的强制转换

    2 某个类型a想转换成 int *a

      (int *a,即(int *)表示向指向int的指针的强制转换

    3 某个类型a想转换成int *a)(int

      (int *)(int))a,即(int *)(int))表示向 指向 以int为参数返回int型的函数 的指针 的强制转换

    4void *)())

      添加变量名a,去掉最外面的括号得到:void *a)()

      表示指向返回为void的无参函数的指针,

      所以原式表示向 指向返回void的无参函数的指针 的强制转换

    5 将常数0强制转换为 指向 返回值为void的无参函数 的指针

      (void *)())0 0被强制转换成一个函数指针

      如果 #define fp void *)())0

       则fp将成为一个指针,这个指针指向一个返回值为void的无参函数

      调用这个函数:(*fp)()

      即:(*void *)())0)()

      解读:将0强制转换成函数指针后再解引用调用这个函数

    6 如果一个函数的返回值是一个函数指针

      这个函数名:signal,函数参数:(intvoid *func)int)

      返回值:void *a)(int

      那么这个函数的定义:

      void *signalintvoid*func)(int))(int

  • 相关阅读:
    元素水平居中方式
    JQuery 之事件中的 ----- hover 与 onmouseover 、onmouseout 联系
    JQuery 获取指定url对应的html内容
    BOM 窗体相关属性以及页面可见区域的获取方式
    使用supervisor提高nodejs调试效率
    Jquery on() 动态绑定事件
    局部打印插件 jquery.PrintArea.js
    深入理解BFC和Margin Collapse
    Sublime Text 2 安装Package Control和插件的两种方法
    001 数据库基本概念和操作
  • 原文地址:https://www.cnblogs.com/buptlyn/p/4158603.html
Copyright © 2011-2022 走看看