【引用技术】

一、C++里的引用技术

概念:引用是创建一个变量的引用名称

二、使用

1.语法

数据类型& 变量名称{引用对象的名称}

int a{500};
int& b{ a };

b = 5200;
相当于a = 5200;
特点:
引用一定要初始化,否则编译器会报错!

2.注意事项

(1)赋值问题

(2)数据类型和引用类型要一致

int main(int argc, char* argv[])
{
	const int a = 1;
	const int& c{ a };
	int b{ 255 };
	int& d{ b };
	d = a;//b = a;
}

3.特点

  • 可以用.代替指针的->
  • 传递参数前不需要用取址运算符&,传递参数后不需要用*运算符就可以赋值

4.使用场景:函数里的参数

int Add(int& a, int& b) {
	a *= 10;
	return a + b;
}

void Cout(int num) {
	std::cout << num << std::endl;
}
int main(int argc, char* argv[])
{
	int a = 1, b = 2;
	Cout(Add(a, b));
}

5.引用的本质

一种被阉割了的指针,虽然我们取址引用变量得到的是原值的内存地址,但是引用变量也是占用内存的

	int a = 5;
00F94B38 C7 45 F8 05 00 00 00 mov         dword ptr [ebp-8],5  
	a = 5;
00F94B3F C7 45 F8 05 00 00 00 mov         dword ptr [ebp-8],5  
	int& b = a;
00F94B46 8D 45 F8             lea         eax,[ebp-8]  
00F94B49 89 45 EC             mov         dword ptr [ebp-14h],eax  
	int& c = a;
00F94B4C 8D 45 F8             lea         eax,[ebp-8]  
00F94B4F 89 45 E0             mov         dword ptr [ebp-20h],eax  
	int* d = &a;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值