如何深度解读C引用的内涵与价值?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1534个文字,预计阅读时间需要7分钟。
什么是引用(reference)?
引用不是重新定义一个变量,而是为已存在的对象取一个别名。
从语言逻辑角度来看,引用不占用额外的内存空间,因为它与被引用的对象共享同一块内存空间。
什么是引用(reference)
引用不是新定义一个变量,而是给已存在对象取了一个别名,从语言逻辑角度看,引用不占用额外的内存空间,而与被引用的对象共用同一块内存空间。使用引用时,需要注意以下几点:
- 引用在定义时必须初始化;
- 一个变量可以有多个引用;
- C++中的引用一旦初始化便不能转移;
- 在语法逻辑角度,引用不占用额外的内存空间,只是某个对象的别名。
引用的使用场景(意义)
做参数
输出型参数
此时形参是实参的一个别名,形参的改变会影响实参,故可以用引用做输出型参数。相比指针,引用做输出型参数显得更加明了和方便。
void Swap(int& x, int& y)
{
int tmp = x;
x = y;
y = tmp;
}
提高效率
传参时,使用引用可以避免参数的压栈过程,减少拷贝,以提高效率。当面对大对象和深拷贝类对象时,引用传参的效率提升非常明显。
做返回值
提高效率
由于函数栈帧会销毁,当函数返回一个值时,总是会先将返回值拷贝到一个临时变量中再返回。若返回返回值的引用,则可以避免该次拷贝而而直接返回该值以提高效率。
本文共计1534个文字,预计阅读时间需要7分钟。
什么是引用(reference)?
引用不是重新定义一个变量,而是为已存在的对象取一个别名。
从语言逻辑角度来看,引用不占用额外的内存空间,因为它与被引用的对象共享同一块内存空间。
什么是引用(reference)
引用不是新定义一个变量,而是给已存在对象取了一个别名,从语言逻辑角度看,引用不占用额外的内存空间,而与被引用的对象共用同一块内存空间。使用引用时,需要注意以下几点:
- 引用在定义时必须初始化;
- 一个变量可以有多个引用;
- C++中的引用一旦初始化便不能转移;
- 在语法逻辑角度,引用不占用额外的内存空间,只是某个对象的别名。
引用的使用场景(意义)
做参数
输出型参数
此时形参是实参的一个别名,形参的改变会影响实参,故可以用引用做输出型参数。相比指针,引用做输出型参数显得更加明了和方便。
void Swap(int& x, int& y)
{
int tmp = x;
x = y;
y = tmp;
}
提高效率
传参时,使用引用可以避免参数的压栈过程,减少拷贝,以提高效率。当面对大对象和深拷贝类对象时,引用传参的效率提升非常明显。
做返回值
提高效率
由于函数栈帧会销毁,当函数返回一个值时,总是会先将返回值拷贝到一个临时变量中再返回。若返回返回值的引用,则可以避免该次拷贝而而直接返回该值以提高效率。

