首页 > 代码库 > C++引用
C++引用
大家都知道,C++ 语言有一种 很好用的 也是很常用的技术 叫做引用,这个是在C语言的基础上的一个扩冲,类似指针,只是在声明的时候用&取代了* , 引用可以看作是被引用的一个别名,在声明时必须同时进行初始化。
1.函数参数的引用
#include<iostream> using namespace std; void swap(int &a, int &b); int main() { int num1 = 10; int num2 = 20; cout<<num1<<" "<<num2<<endl; swap(num1, num2); cout<<num1<<" "<<num2<<endl; return 0; } void swap(int &a, int &b) { int temp = a; a = b; b = temp; }
2.函数引用返回值
在C++中非void型函数需要返回一个返回值,类似函数形参,我们同样可以将函数的返回值声明为引用。普通的函数返回值是通过传值返回,即将关键字return后面紧接的表达式运算结果或变量拷贝到一个临时存储空间中,然后函数调用者从临时存储空间中取到函数返回值。
#include<iostream> using namespace std; int valplus(int &a); int main() { int num1 = 10; int num2; num2 = valplus(num1); cout<<num1<<" "<<num2<<endl; return 0; } int valplus(int &a) { a = a + 5; return a; }
valplus函数采用的是普通的传值返回,也即将变量a的结果加上5之后,将结果拷贝到一个临时存储空间,然后再从临时存储空间拷贝给num2变量。 当我们将函数返回值声明为引用的形式时,如例5所示。虽然例5运行结果和例4是相同的,但例5中的valplus函数在将a变量加上5之后,其运算结果是直接拷贝给num2的,中间没有经过拷贝给临时空间,再从临时存储空间中拷贝出来的这么一个过程。这就是普通的传值返回和引用返回的区别。
#include<iostream> using namespace std; int & valplus(int &a); int main() { int num1 = 10; int num2; num2 = valplus(num1); cout<<num1<<" "<<num2<<endl; return 0; } int & valplus(int &a) { a = a + 5; return a; }
C++引用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。