美文网首页
c++ 指针

c++ 指针

作者: Joyconfirmed | 来源:发表于2021-06-08 08:34 被阅读0次

    函数指针

    是指向函数的指针变量,即重点是一个指针。一种特殊的指针,它指向函数的入口;
    要声明指向特定类型的函数指针,可以首先编写这个函数的原型,然后用(*p)来替换函数名,这样p就是这类函数的指针。

    // 格式:类型说明符 (*函数名)(参数)
    int (*f) (int x);
    

    指向函数的指针包含了函数的地址,可以通过它来调用函数,其实这里不能称为函数名,应该叫做指针的变量名。
    这个特殊的指针指向一个返回整型值的函数实现地址。

    #include <iostream>
    // 定义一个函数指针p, 只能指向返回值为int, 形参为两个int的函数
    int (*p) (int, int);
    // 求最大值
    // 返回值是int类型,返回两个整数中较大的一个
    int max(int a, int b) {
      return a > b ? a : b;
    }
    // 求最小值
    // 返回值是int类型,返回两个整数中较小的一个
    int min(int a, int b) {
      return a < b ? a : b;
    }
    int main(){
      p = max; // 函数指针p指向求最大值的函数max
      int c = (*p)(1, 2);
      std::cout << c << std::endl;
    //  p = min; // 函数指针p指向求最小值的函数min
    //  int c = (*p)(1, 2);
    //  std::cout << c << std::endl;
    }
    

    指针函数

    就是指针的函数,表示是一个函数,函数返回类型是某一类型的指针
    返回指针的函数,一个函数,它的返回值是指针;

    //格式:类型标识符 * 函数名(参数表)
    int *f(x, y);
    
    #include <iostream>
    // 指针函数的定义
    // 返回值是指针类型int
    int *f(int a, int b) {
      int *p = (int *)malloc(sizeof(int));
      memset(p, 0, sizeof(int));
      *p = a + b;
      return p;
    }
    int main() {
      int *p1 = NULL;
      p1 = f(1, 2);
      std::cout << *p1 << std::endl;
    }
    

    相关文章

      网友评论

          本文标题:c++ 指针

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