c++引用

一、引用的作用
建立引用的作用是为变量另起一个名字,变量的引用通常被认为是变量的别名。
对变量声明一个引用,并不另外开辟内存单元,变量 i 和引用 j 占用内存的同一位置,当 i 变化时,j 也随之变化, 反之亦然。

二、引用的格式
类型 &引用名=已定义的变量名;

注意:(1)在声明引用时,必须立即对它进行初始化,不能声明完成后再赋值。
   (2)为引用提供的初始值可以是变量或另一个引用。
   (3)指针是通过地址间接访问某个变量,而引用是通过别名直接访问某个变量,使用引用可以简化程序。(因为不用书写“*”)。
   (4)引用在初始化后不能再重新声明为另一个变量的引用(别名)。
   (5)可以将引用的地址赋给一个指针,此时指针指向原来的变量。
   (6)引用仅在声明时带有引用运算符“&”,以后像普通变量一样使用,不能再带“&”,其它场合使用的“&”都是地址操作符。
例如: 声明一个 j 作为 i 的别名。

int i=5;
int &j=i;  //声明j是一个整型变量的引用,用整形变量i对它进行初始化

例1: 变量和引用的关系。

#include<iostream>
using namespace std;
int main(){
	int i;
	int &j=i;
	i=30;
	cout<<"i="<<i<<" j="<<j<<endl;
	j=80;
	cout<<"i="<<i<<" j="<<j<<endl;
	cout<<"i address is:"<<&i<<endl;
	cout<<"j address is:"<<&j<<endl;
}

执行结果:
在这里插入图片描述
三、引用作为函数参数
例2: 指针变量作为函数参数的例子。

#include<iostream>
using namespace std;
void swap(int *m,int *n){
	int temp;
	temp=*m;
	*m=*n;
	*n=temp;	
}
int main(){
	int a=5,b=10;
	cout<<"a="<<a<<" b="<<b<<endl;
	swap(&a,&b);
	cout<<"a="<<a<<" b="<<b<<endl;
	return 0;
}

执行结果如下图:
在这里插入图片描述
例3: 引用作为函数参数的例子。

#include<iostream>
using namespace std;
void swap(int &m,int &n){
	int temp;
	temp=m;
	m=n;
	n=temp;	
}
int main(){
	int a=5,b=10;
	cout<<"a="<<a<<" b="<<b<<endl;
	swap(a,b);
	cout<<"a="<<a<<" b="<<b<<endl;
	return 0;
}

执行结果和例2一致。
在该例子中对m和n的访问实际上就是对a和b的访问。

四、使用引用返回函数值
例3: 使用引用返回函数值。

#include<iostream>
using namespace std;
int a[]={1,3,5,7,9};
int &index(int);  //声明函数,返回一个整数类型的引用 
int main(){
	index(2)=25; //函数为引用时,才可以将函数调用放在"="左边 
	cout<<index(2);
	return 0;
}
int &index(int i){
	return a[i];
}

这里我自己再加一点,引用的本质是指针常量
对于

int a = 10;
int &res = a;
//实质为:const int *res  = a;
res = 15;
//本质为 *res = 15;*号是由编译器检测到此处为引用自动进行的处理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值