C++ 参数传递 nonreference parameters & reference parameters 非引用和引用类型

参考《C++ Primer》Section 7.2 Argument Passing中的内容。

nonreference patameters非引用型参数

先拷贝一份,然后在拷贝的这份参数上进行操作。

  1. 不对实际的参数进行改变,这份拷贝在函数结束时生命周期终结。
  2. 因为传递非引用型的参数会拷贝数据,所以如果传递string, vector或者其他容器类型,将会带来时间和空间的开销。
  3. 如果传递的参数是非引用型的指针,如果没有*指针运算符,也不会改变指针所指向的内容,因为依然是一份参数的局部拷贝。
  4. 还有可能有对象无法拷贝的情况。

reference parameters 引用型参数

引用只是别名而已。

  1. 引用作为输出参数,可以返回返回值之外的信息。
  2. 使用(const)引用避免拷贝。如果说使用参数引用的目的只是为了避免拷贝的发生,那么引用应该是const的。
  3. const引用更加灵活(其实应该叫做对于const对象的引用)。比如说,const引用可以初始化为一个常数,可以作为右值,普通引用如果初始化为不同类型的值会报错,const类型的引用是可以的。
  4. 传递对指针的引用,就可以不使用*来改变指针指向的值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值