美文网首页
C++中的指针和引用与Java中的引用区别

C++中的指针和引用与Java中的引用区别

作者: 日暮颂歌1991 | 来源:发表于2020-03-08 11:09 被阅读0次
  • C++的指针和Java中的引用比较像,在作为函数参数传递时,都可以在函数内部改变 ”外部“ 的值
  • C++的引用使用时必须是初始化的,他是一段内存的别名,因此也可以在函数内部改变”外部“的值,但是有一点不同是,它作为参数传递时在函数内部不能改变其本身的指向

C++ 代码:

#include <iostream>

using namespace std;

class Test {

public:
    Test(int num) {
        this->num = num;
    }

public:
    int num;
};

void change1(Test & t) {
    t.num = 2;
    // t = new Test(3); // 报错: 引用再次赋值
}

void change2(Test *t) {
    t->num = 2;
    t = new Test(3);    // 指针再次赋值,指向新内存 
}

int main(int argc, char const *argv[])
{
    Test t = Test(1);

    cout << "------引用---------" << endl;
    cout << t.num << endl;
    change1(t);
    cout << t.num << endl;
    

    Test *t2 = new Test(1);
    cout << "------指针---------" << endl;
    cout << t2->num << endl;
    change2(t2);
    cout << t2->num << endl;

    return 0;
}

输出:
------引用---------
1
2
------指针---------
1
2

Java 代码:


class Test {
    public int num;

    Test (int num) {
        this.num = num;
    }
}

public class Learn {
    public static void change(Test t)
    {
        t.num = 2;
        
        t = new Test(3); // 引用 t 再次指向新对象,更像是 C++ 中的指针
    }

    public static void main(String[] args) {
        Test t = new Test(1);
        System.out.println(t.num);
        change(t);
        System.out.println(t.num);
    }
}

输出:
1
2

相关文章

  • java中的引用与c++中的指针的区别

    java中的引用与c++中的指针的区别 Java的引用和C++的指针都是指向一块内存地址的,通过引用或指针来完成对...

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • 指针和引用的区别

    参照lyd_253261362的专栏的文章详细介绍=====c++中的引用与指针的区别 c++中的引用与指针的区别...

  • 指针和引用的辨析

    先来看两个图 指针与引用的区别 1.指针在C和C++中均有,而引用是C++独有的特性(*指针申明符号,&引用申明符...

  • 基于堆栈内存详析 Java函数形参是传值还是引用? | C++指

    Java的引用 及 Java函数形参是传值还是引用 Java中没有指针的说法,Java中的引用就类似于C++的指针...

  • C++中的指针和引用与Java中的引用区别

    C++的指针和Java中的引用比较像,在作为函数参数传递时,都可以在函数内部改变 ”外部“ 的值 C++的引用使用...

  • C++之指针和引用

    指针和引用的区别? 在C++的编码中我们发现很多地方都大量地使用引用,能用指针实现的功能改用引用几乎也能实现,甚至...

  • C++中的引用和指针

    C++ 引用与指针的比较 引用是 C++ 中的概念,初学者容易把引用和指针混淆一起。 以下程序中,n 是m的一个引...

  • JVM&GC(一)java引用

    前言 Java中的引用有点像C++中的指针,通过引用可以对堆中的对象进行操作。在Java程序中最常见的引用类型是强...

  • Java.2018-08-01

    Java简介 Java语言不使用指针,而是引用指针和引用区别1指针和引用区别2 只支持类之间的单继承,但支持接口之...

网友评论

      本文标题:C++中的指针和引用与Java中的引用区别

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