C++:关于引用(概念+用法+解释)

总述
一 引用的概念及用法
引用:给一个已经定义的变量重新起一个别名。
表示方式和指针相似,不同的是用&代替了*,对引用的操作与对变量直接操作完全一样。
表示方式:类型 &引用变量名 = 已定义过的变量名;
二 引用的特点:

  1. 一个变量可取多个别名
  2. 引用必须初始化
  3. 引用只能在初始化的时候引用一次,不能改变为再引用其他的变量。因为引用变量若改为其他变量,就相当于将之前被引用的变量的值改为此处的值。

下面的写法定义了一个引用某个变量,并将其初始化为类型名 & 引用名 = 某变量名;

int n=4;
int &r=n;//r引用了你,,r的类型是int &

某个变量的引用,等价于这个变量,(注意是等价!!!)相当于该变量的一个别名(就如自己的小名一样,指的是一个人)

int n=4;
int &r=n;
r=4;
cout<<r;//输出 4
cout<<n;//输出 4
n=5;
cout<<r;//输出 5

定义引用时一定要将其初始化成引用某个变量。
初始化后,它就一直引用该变量,不会再引用别的变量了。
引用只能引用变量,不能引用常量和表达式。

double a=4,b=5;
double & r2=a;
double & r2 r1;//r2也引用a,此时r1,r2.a三者等价
r2=10;
cout <<a<<endl;  //输出 10
r1=b;            //r1没有引用,这里是把b的值赋给r1
cout<<a<<endl;//输出4

C语言中如何编写交换两个整型变量值的函数?

void swap(int *a,int *b)
{
	int temp;
	tenp=*a;*a=*b;*b=tmp;
}
int n1,n2;
swap(n1,n2);//n1,n2的值被交换
``
引用的简单示例

```cpp
void swap(int &a,int &b)
{
	int tmp;
	tmp=a;a=b;b=tmp;
}
int n1.n2;
swap(n1,n2);//n1,n2的值被交换

除此之外,引用还可以作为函数的返回值(目前虽然看看不出他有啥用,但我们得了解了解是吧)

int n=4;
int & setvalue(){ return n;}
int main()
{
	setvalue()=40;
	cout<<n;//输出 40
	return 0;
}

常引用
<定义引用时,前面加const关键字,即为“常引用”>

int n;
const int & r=n;
//r的类型是 const int &

不能通过常引用去修改其引用内容:

int n=100;
const int & r=n;
r=200;//编译错误
n=300;//这一步没问题

问:为什么 r=200 时会显示编译错误呢?
答曰:因为规定啊,人家明明说的说的很清楚<不能通过常引用(由规定可知,这里的常引用为’r’)去修改其引用内容>
问:为什么可以通过n=300来改变r的值呢?
答:可以这样认为:n与r在是等价的,因为定义r被限制了,不能通过引用常量去修改其引用内容,但咱可以通过其他与常引用有关的来修改它对吧


欢迎指正错误 >–<

发布了22 篇原创文章 · 获赞 17 · 访问量 1138

猜你喜欢

转载自blog.csdn.net/qq_45803800/article/details/104589394
今日推荐