目录
1、变量名回顾
- 变量是一段实际连续存储空间的别名
- 程序中通过变量来申请并命名存储空间
- 通过变量的名字可以使用存储空间
如图:
思考:
对于一段连续的存储空间只能有一个别名吗?
肯定不是,因此我们可以给同一个连续的存储空间取多个别名,这就诞生了C++中的引用机制
2、引用的概念
- 引用可以看作一个已定义变量的别名
- 引用的语法:Type& name = var;
示例:
exp-1.cpp
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 4;
int& b = a;
b = 5;
printf("a = %d\n", a);
printf("b = %d\n", b);
printf("&a = %p\n", &a);
printf("&b = %p\n", &b);
return 0;
}
运行结果:
可见,a和b指向了同一内存块!
Tip:
普通引用在声明时必须用其它的变量进行初始化。
3、引用的意义
- 引用作为其它变量的别名而存在,因此在一些场合可以代替指针
- 引用相对于指针来说具有更好的可读性和实用性
示例:
exp-2.cpp
#include <stdio.h>
void swap_q(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
void swap_p(int *pa, int *pb)
{
int temp = *pa;
*pa = *pb;
*pb = temp;
}
int main(int argc, char *argv[])
{
int a = 4;
int b = 5;
swap_q(a, b);
printf("a = %d\n", a);