c++ 引用,对象,指针 以及 java 引用 对象

概述

C++中的指针和引用都是变量,用于间接访问和修改变量的工具。

  • 指针
    是一个变量,它存储了另一个变量的内存地址。指针变量本身也需要分配内存空间。

  • 引用
    引用变量则是原变量的别名,它提供了对另一个变量的直接访问。它不需要额外的内存空间来存储地址。
    这是因为,
    在编译时,编译器会将引用变量和原变量绑定在一起,它们实际上指向同一个内存地址。
    在程序运行时,当我们使用引用时,编译器会自动将引用转换为对原变量的指针内存地址,并在需要访问原变量时使用该指针内存地址
    因此,引用变量并不需要额外的内存空间来存储它所指向的变量的地址。相反,它直接使用原变量的地址来访问该变量

  • 对象
    是一种复合数据类型,它将多个变量组合在一起,并提供了一组方法来操作这些变量。对象可以通过指针或引用进行访问和修改,也可以直接进行访问和修改。

Java中

  • 引用
    是一种数据类型,它提供了对对象的直接访问。在Java中,对象是通过new操作符动态分配内存而创建的。Java中没有指针的概念,因此不能像C++中那样直接访问和修改内存地址。

对象访问

c++

3中方式

int main() {
    MyClass obj; // 自动变量创建对象 ,在栈上面分配内存,离开函数作用域后自动回收内存
    obj.my_var = 42;//直接对象访问
    obj.my_func();

    MyClass* ptr = &obj; //指针访问对象
    ptr->my_var = 99;
    ptr->my_func();

    MyClass& ref = obj;// 引用访问访问对象
    ref.my_var = 123;
    ref.my_func();

    return 0;
}

java

仅一种方式

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice");//只能够通过引用访问到对象
        person.sayHello(); 
    }
}

参数传递

  • 值传递:
    将变量的值复制一份,并将其传递给方法或函数。在方法或函数中对该参数进行修改不会影响原始变量。
  • 指针传递:
    将指向变量的指针复制一份,并将其传递给方法或函数。在方法或函数中对该指针所指向的变量进行修改将影响原始变量。
  • 引用传递:
    将变量的别名复制一份,并将其传递给方法或函数。在方法或函数中对该别名所指向的变量进行修改将影响原始变量。

c++

对象可以进行值传递,这意味着会拷贝整个对象的副本,并将副本传递给函数。
指针和引用可以指向基本类型,因此基本类型可以进行指针传递和引用传递。

java

值传递,引用传递
对象只有引用传递,不会将整个对象的副本传递给函数。
基本类型只有值传递

在C++中

对象是一个实体,它具有属性和行为;
指针是一个变量,它存储的是一个内存地址,可以通过该地址访问到该地址上存储的数据;
引用是一个别名,它是一个已存在对象的别名。C++中的指针和引用都可以用于函数参数传递、返回值和对象成员变量等场景。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值