辨析值传递和引用传递(新手见解)

今天和群友聊天提及此事,特此记录以下。怎么利用函数改变实参的值。(不针对面向对象编程。)

1.值传递

  我们在c++中直接构建方法时候,使用值传递,即

int fun(int a)这种形式,因为形参有自己的存储空间,所以我们在引用方法的时候,会优先把实参拷贝到形参的空间再利用,所以其实是不会改变值。

2.引用传递

 在c++中,有不同于c的方法:引用。这就相当于对存储空间起一个别称,可以改变实参。

int fun(int &a)

3.地址传递,也就是利用指针读取数据修改。

而我们进行面向对象编程二点时候,其实就是默认用了值引用。会改变相应的值:

利用this指针访问成员变量进行修改或者直接改变变量的值。

那么this是什么:this 实际上是成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给 this。不过 this 这个形参是隐式的,它并不出现在代码中,而是在编译阶段由编译器默默地将它添加到参数列表中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随便取名字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值