zoukankan      html  css  js  c++  java
  • C/C++ 函数形参 指针&指针的指针

    把指针作为函数形参的一般目的与意义在于:

      能在函数内部修改指针所指对象的值

    何时需要用“ 指针的指针 ”作为 函数形参?

      当你需要在函数内部修改指针的指向时

    void f(int * pk);
    
    void f_(int * *pk);
    
    int data =6;
    
    int *p=&data;

    p=data的地址

    &p=p的地址(即地址的地址)

    void f(int * pk);

      f(p)  ->   把p传到f函数时,pk=p;pk获得了data的地址,故可用pk修改data。然而pk并不知道p的地址,故无法修改p的值即p的指向。这里的本质还是值传递,是data的地址被拷贝给了pk

    f(*p):   函数内部可改变p指向的变量的值,但不可改变源p的值,即不可改变p的指向

    f(**p): 函数内部可改变p指向的变量的值,也可改变源p的值,即可改变p的指向

    ...略显抽象

    总结来说:

    void f(int * pk);

    void f_(int * *pk);

    所谓形参都是值传递,都是实参的副本。若要通过函数内部修改外部的值,单单使用pk是一定不够的,因为pk不过是函数内的一个临时副本,任何直接对pk的赋值都不会影响外部,但*p或**p则会改变外部的值,因为他们代表的都是真实的外部变量。而**p中的p更深层次,控制权更多

  • 相关阅读:
    subtext 安装PythonIDE -Anaconda
    Python--DBUtil
    python操作oracle数据库-查询
    Python 离线工作环境搭建
    Scrapy-下载中间件
    centos安装 Anaconda3及使用
    Scrapy爬取人人网
    海明距离
    中心极限定理
    最大似然估计 (MLE)与 最大后验概率(MAP)在机器学习中的应用
  • 原文地址:https://www.cnblogs.com/2cats/p/3635861.html
Copyright © 2011-2022 走看看