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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a740169405/article/details/79416792

变量定义

int a = 0;

这里的 a 就是一个变量,在内存里,开辟了四个字节的内存空间,a 指向的首个字节的地址。 而 “0” 是放在这四个字节空间里的数据。

我们把 a的地址打印出来

std::cout << &a << std::endl;

结果是

0x7ffeead54828

此时,我们在定义一个 b 变量,并吧 a 赋值给 b 变量。

int b = a;

我们再把b的地址打印出来

std::cout << &b << std::endl;

结果是

0x7ffeead5481c

会发现,定义变量 b 的时候,又开辟了四个字节的内存空间,并把 a 变量指向的内存空间里的数据拷贝到了 b 变量开辟的内存空间里。

那么,有没有一个办法,定义另外一个变量,指向 a 变量所指向的内存空间呢,答案是肯定的,那就是 “引用” 变量。

引用变量的定义

int $c = a;

int代表的是“引用”指向的变量的数据类型。 使用&c来定义一个引用类型。而 c 则是该应用类型的名称。

此时,你会发现 c 变量所指向的内存空间和 a 变量所指向的内存空间是同一个。

扫描二维码关注公众号,回复: 3520014 查看本文章

我们把变量 c 的内存地址打印出来
我们把 a的地址打印出来

std::cout << &c << std::endl;

结果是

0x7ffeead54828

和 a 变量指向的是同一个内存地址。

引用变量总结:
1. 引用变量也是一种变量,只不过他的定义和普通变量稍有不同,在变量名前面加了个“&”符号。
2. 引用变量其实是为已经存在的变量取了一个新的名词。引用变量所指向的内存地址和旧变量所指向的内存地址一致。
2. 对引用变量的赋值,其实就是对引用变量代表的变量赋值(因为指向的是同一块内存地址)。

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

猜你喜欢

转载自blog.csdn.net/a740169405/article/details/79416792