c++总结(2)引用

引用

1.基本使用

我们建立引用的作用是为了方便引用变量。

当我们声明了一个引用时,我们必须同时使用另一个变量的名字来将它初始化,即 声明其代表的变量。
格式如下:
类型 &引用名=已定义的变量名
int i=10; int &j=i;// j是i的引用
需要注意的一点,其中“&”并不代表地址。
在了解基本应用之后,我们需要探究 i与j之间的关系。

代码如下:

#include<iostream>
using namespace std;
int main(){
    
    
	int i=10;
	int &j=i;
	i=30;
	cout<<"i="<<i<<"  j="<<j<<endl;
	j=40;
	cout<<"i="<<i<<"  j="<<j<<endl;
	cout<<"变量i的地址是:"<<&i<<endl;
	cout<<"变量j的地址是:"<<&j<<endl;
	return 0;
}


在这里插入图片描述

我们发现:只要 i 和 j 任意一个变量发生改变,另一个变量也会发生改变。i与j使用的是同一地址。
特别注意的是,引用并不是一种独立的数据类型,在它出现时,我们必须立即对其进行初始化。否则会产生错误。
在这里插入图片描述

2.引用作为函数参数

我们在之前使用参数交换数据时通常都会想到使用指针,现在我们可以使用“引用”这一方式来进行交换。

#include<iostream>
using namespace std;
void swap(int &p,int &q ){
    
     //将实参传给形参,p和q分别为i和j的引用。在p,q变化的时候,j和i也跟着变化
int t;
t=p;
p=q;
q=t;
}
int main(){
    
    
	int i=2;
	int j=10;
	swap(i,j);
	cout <<"i="<<i<<" j="<<j<<endl;
	return 0;
}

3.使用引用返回函数值

当使用引用返回函数值时,可以将函数调用放在赋值运算的左边。

#include <iostream>
using namespace std;
int a[]={
    
    1,2,3,4,5}
int &index(int ){
    
    
return a[i];
}
int main(){
    
    
cout<<index(2)<<endl;
index(2)=10;
cout<<index(2)<<endl;
return 0;
}

我们需要注意是:只有调用函数不为“void”型的时候才能使用引用返回函数值,否则会出现错误。

4.关于“引用”的总结

在"引用"时,我们首先要明确一点:
引用与其所代表的变量共享同一内存单元,系统不会为此另分配存储空间。
这意味着,引用并不是一种独立数据类型,它是其它数据的“别名”。
还需要注意的是:
1.引用与被应用数据的关系是双向的。
任意一方发生改变,另一方也会发生相同的改变(用const时除外)。
2.不能出现引用的数组。

int a[4]="abcd";
int &ra[4]=a;
数组名a只能代表数组首元素的地址,
其本身并不是占有一个存储空间的变量。

猜你喜欢

转载自blog.csdn.net/qq_52081162/article/details/114587598
今日推荐