c++核心编程—引用

目录

一、引用的基本使用

二、引用的注意事项

三、引用做函数参数

四、引用做函数返回值

五、引用的本质

六、常量引用

一、引用的基本使用

作用:给变量取别名

语法数据类型 &别名 = 原名

二、引用的注意事项

1、引用必须初始化

2、引用在初始化后,不可以改变

3、引用必须引一块合法的内存空间

示例:

三、引用做函数参数

作用:函数传参时,可以利用引用的技术让形参修改实参

优点:可以简化指针修改实参

示例:

//值传递
void swap1(int a,int b) {
	int tem = a;
	a = b;
	b = tem;
}

//地址传递
void swap2(int* a, int* b) {
	int tem = *a;
	*a = *b;
	*b = tem;
}

//引用传递
void swap3(int& a, int& b) {
	int tem = a;
	a = b;
	b = tem;
}


int main() {

	int a = 10;
	int b = 20;
	
	swap1(a,b);
	cout << "值传递:a = " << a << endl;
	cout << "值传递:b = " << b << endl;

	swap2(&a, &b);
	cout << "地址传递:a = " << a << endl;
	cout << "地址传递:b = " << b << endl;

	//地址传递会改后,需要还原
	a = 10;
	b = 20;

	swap3(a, b);
	cout << "引用传递:a = " << a << endl;
	cout << "引用传递:b = " << b << endl;

	system("pause");
	return 0;
}

总结,我们可以这样理解:

1、值传递:将实参拷贝一份给形参

2、地址传递:将实参的地址传给形参

3、引用传递:直接把实参本体,取个名字传给形参

四、引用做函数返回值

作用:引用时可以作为函数的返回值存在

注意:

1、不要返回局部变量引用(局部变量在栈区,调用结束会销毁)

说明:局部变量的引用作为返回值时,可能存在可以使用几次的情况,这是因为编译器会对局部变量进行几次保留,尽可能避免我们因此产生错误。

2、对于引用作为返回值的函数,可以把函数调用作为左值,对其进行赋值

结果显示,这种方法是可行的!!!

解释:

1、函数在调用后,返回一个引用变量,

2、对引用变量重新赋值为100

五、引用的本质

本质:引用的本质在c++内部实现是一个指针常量(指针是个常量)

示例:

总结:

1、对于:int& ref = a; 引用的初始化,自动转换为 int* const ref = &a;

2、对于:ref = 20; 引用的调用,自动转换为 *ref = 20;

3、c++推荐用引用计数,因为语法方便,引用的本质是指针常量,但是所有的指针操作编译器都帮我们做了

六、常量引用

作用:常量引用主要用来修饰形参,防止误操作,修改值

解释:在函数形参列表中,可以使用const修饰形参,防止形参改变实参

语法:const 数据类型& 引用名

示例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值