为什么要用const int& a而不是int& a

  • 函数声明时const 与&的作用

const常类型:形参在子函数中调用时当成一个常量来使用,既无法成为左值,无法修改形参的值。

void fun(const int a)

引用(&):以这种形式进行参数传递,其实是一种指针的形式,如果在函数内我们改变了a,b的值,当函数结束后,传入的实参值也将被改变。

void fun(int &a)
  • 为什么要用const vector<int> &a形式

当参数是较大的数据类型时,并且不需改变原变量中的值,我们最好使用void fun(vector<int> &a),而不是void fun(vector<int> a)

因为void fun(vector<int> a)需要对原变量进行一次复制操作,即使两个变量名相同但是作用域不同,所以其实是两个变量,所以需要一次复制操作,因此大数据类型复制时要耗时。
而使用void fun(vector<int> &a)不需要进行复制操作,但是需要防止在函数中改变了参数的值。所以就有了void fun(const vector &a)这样的结构,我们都知道const关键字定义的变量是不可以被改变的,所以当我们进行常量引用时既不会进行复制操作,当误操作时又不能编译通过,两全其美。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yjonben

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

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

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

打赏作者

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

抵扣说明:

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

余额充值