zoukankan      html  css  js  c++  java
  • [Js-C++]C++中*&(指针引用)和*(指针)的区别

    很久之前学的C++了,复习一下,指针是一个存放地址的变量,而指针引用指的是这个变量的引用,众所周知C++中如果参数不是引用的话会调用参数对象的拷贝构造函数,所以如果有需求想改变指针所指的对象(换句话说,就是要改变指针里面存的地址),就要使用指针引用,在网上看到大佬的代码,简单明了,如下

    #include <iostream>
    
    using namespace std;
    struct point {
        int x;
        int y;
    };
    
    void changenum1(point *&pnum) {
        pnum = new point;
        pnum->x = 4;
    }
    
    void changenum2(point *pnum) {
        pnum = new point;
        pnum->x = 4;
    }
    
    
    void test1() {
        point *num = new point;
        num->x = 10;
        changenum1(num);
        std::cout << "指针引用" << num->x << endl;
    }
    
    void test2() {
        point *num = new point;
        num->x = 10;
        changenum2(num);
        std::cout << "指针" << num->x << endl;
    }
    
    int main() {
        cout << "开始执行程序" << endl;
        test1();
        test2();
        cout << "执行程序完毕" << endl;
        return 0;
    }

    输出结果:

    D:Workspaceclion-workspacestar-referenceVSstarcmake-build-debugstar_referenceVSstar.exe
    开始执行程序
    指针引用4
    指针10
    执行程序完毕
    
    Process finished with exit code 0
  • 相关阅读:
    Android studio中Terminal中使用git(Windows环境)
    快速将JSON转换为bean
    生成apk文件
    Intent显式和隐式使用
    碎片
    ListView的基本用法
    浅谈JSONObject,GSON解析JSON
    浅谈SAX,PULL解析XML
    iOS源代码管理工具
    详解tintColor属性
  • 原文地址:https://www.cnblogs.com/jiasq/p/8637982.html
Copyright © 2011-2022 走看看