变量定义
这里的 a 就是一个变量,在内存里,开辟了四个字节的内存空间,a 指向的首个字节的地址。 而 “0” 是放在这四个字节空间里的数据。
我们把 a的地址打印出来
std::cout << &a << std::endl;
结果是
0x7ffeead54828
此时,我们在定义一个 b 变量,并吧 a 赋值给 b 变量。
我们再把b的地址打印出来
std::cout << &b << std::endl;
结果是
0x7ffeead5481c
会发现,定义变量 b 的时候,又开辟了四个字节的内存空间,并把 a 变量指向的内存空间里的数据拷贝到了 b 变量开辟的内存空间里。
那么,有没有一个办法,定义另外一个变量,指向 a 变量所指向的内存空间呢,答案是肯定的,那就是 “引用” 变量。
引用变量的定义
int $c = a;
int代表的是“引用”指向的变量的数据类型。 使用&c来定义一个引用类型。而 c 则是该应用类型的名称。
此时,你会发现 c 变量所指向的内存空间和 a 变量所指向的内存空间是同一个。
我们把变量 c 的内存地址打印出来
我们把 a的地址打印出来
std::cout << &c << std::endl;
结果是
0x7ffeead54828
和 a 变量指向的是同一个内存地址。
引用变量总结:
1. 引用变量也是一种变量,只不过他的定义和普通变量稍有不同,在变量名前面加了个“&”符号。
2. 引用变量其实是为已经存在的变量取了一个新的名词。引用变量所指向的内存地址和旧变量所指向的内存地址一致。
2. 对引用变量的赋值,其实就是对引用变量代表的变量赋值(因为指向的是同一块内存地址)。
需要注意:引用类型在定义的时候必须初始化