天天看点

C++复合类型-引用变量

变量定义

这里的 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. 对引用变量的赋值,其实就是对引用变量代表的变量赋值(因为指向的是同一块内存地址)。

需要注意:引用类型在定义的时候必须初始化