一、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;