【C++】引用

文章详细介绍了C++中的引用概念,包括引用的声明与初始化,引用作为函数返回值的注意事项,函数调用作为左值以及引用的本质——指针常量。此外,还讨论了常量引用的作用,防止对引用对象的误修改,并提供了相关示例进行解释。

C++引用

一、引用变量声明

int a=10;
int &b=a;

【注意】

  1. 引用必须初始化;
  2. 引用在初始化后,不可以改变;
  3. 使用 “=” 赋值后,引用指向的数据被改变。

二、引用做函数返回值

int& test01(){
	int a=10;
	return a;
}
//使用引用接收函数的返回值
int  &ref=test01();

编译器会保留一次引用的函数返回值,之后该内存就被编译器释放(局部变量存放在栈区),第二次操作ref是非法的,所以不要返回局部变量的引用。

三、函数的调用可以作为左值

int& test02(){
	static int a=10;
	return a;
}
//使用引用接收函数的返回值
int  &ref2=test02();
//函数的调用作为左值
test02()=1000;//相当于a=1000;

在最后直接打印ref,ref的值为1000。因为ref是a的别名。

四、引用的本质

引用的本质在C++内部的实现是一个指针常量。

void func(int& ref){
	ref=100;
}
int main(){
	int a=10;
	int& ref=a;//自动转换为 int* const ref=&a;指针常量是指针指向不可更改,也就是为什么引用不可更改
	ref=20;//自动转换为 *ref=20;
	cout<<"a="<<a<<endl;
	cout<<"ref="<<ref<<endl;
	func(a);
	cout<<"a="<<a<<endl;
	cout<<"ref="<<ref<<endl;
	return 0;
}

【打印结果】

a=20
ref=20
a=100
ref=100

【结论】

C++推荐使用引用技术,因为语法方便,引用本质是指针常量,但是所有的指针操作由编译器完成。

五、常量引用

使用场景:用来修饰形参,防止误操作。

int& ref=10;//这句代码将会报错,因为引用必须引一块合法的内存空间
const int& ref=10;//加上const后,编译器将代码修改为int temp=10; const int& ref=temp;
ref=20;//加上const后ref变为只读,不可修改

//例如打印函数
void showValue(const int& ref){
	cout<<"ref="<<ref<<endl;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值