传引用操作符 & 以及 const

2018-02-11

这用于void fun(int & a)这种函数体上,其用途是做“引用传递”,将实参A(比如主函数里调用fun(A);)引用传递给a这个形参,同时a变化了,会修改A的值。

如果不想修改A的值,那么使用void fun(const int &a)进行定义,const用于保护实参。

最常用的void fun(int  a)代表“值传递”,函数自动在内部生成临时变量a,复制实参A。这是主流形式。其中int属于系统自带简单数据类型,因此无需搞成void fun(const int  &a)这么复杂的形式。

什么情况下用&呢?

对于非内部数据类型的参数而言,象void Func(自定义struct a) 这样声明的函数注定效率比较低。因为函数体内将产生“自定义struct”类型的临时对象用于复制参数a,而临时对象的构造、复制、析构过程都将消耗时间。因此采用void func(自定义struct &a)做“引用传递”,速度快。仅借用一下参数的别名而已,不需要产生临时对象。

本博客所有文章如无特别注明均为原创。作者:天泓评测
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)