变量定义

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 变量所指向的内存空间是同一个。

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

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

结果是

0x7ffeead54828

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

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

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

C++复合类型-引用变量相关推荐

  1. C++ | 引用变量

    ##目录 文章目录 何时使用引用参数 1. 传递值而不修改值(尽量 const 修饰) 2. 需要修改原数据 ##导语:为什么要有引用变量 拿一个简单的例子来说,要交换两个变量的值,如何交换?注意这里 ...

  2. C++ 内置或者复合类型 成员,必须自己定义构造函数来初始化……什么样的是【内置】 【复合类型】

    如题,什么是内置,或者复合类型??如果是 一般的float,int,或者一个结构体的引用,是不是不初始化会出问题?? 新手求解. 内置类型(built-in):像int double char这种C+ ...

  3. java变量中不属于复合类型的数据类型是_2006新版JAVA题解(JAVA简单数据类型)...

    2006新版JAVA题解(JAVA简单数据类型) 2007年1月22日来源:233网校网校课程 在线题库评论 分享到 1.下列哪一个是合法的标识符: A.12class; B.+viod; C.-5; ...

  4. java中equals方法的参数_equals方法的参数必须为Object类型的引用变量

    核心结论:子类重写Object类的equals方法需要注意的事项 重写的时候一定要注意equals方法的参数是Object obj类型的引用变量.绝对不可以是其他类型的变量.因为这样的话,和父类Obj ...

  5. mysql的复合类型_PLSQL 复合类型数据

    •复合类型是用户定义的 常用的复合类型有:属性 记录 表 数组 (1) 属性类型(引用数据库列的数据类型) %TYPE – 引用变量和数据库列的数据类型 如:empcode emp.empno%typ ...

  6. winform point数组带数值_带你学够浪:Go语言基础系列 - 8分钟学复合类型

    对于一般的语言使用者来说 ,20% 的语言特性就能够满足 80% 的使用需求,剩下在使用中掌握.基于这一理论,Go 基础系列的文章不会刻意追求面面俱到,但该有知识点都会覆盖,目的是带你快跑赶上 Gol ...

  7. Golang的基本类型、引用类型、复合类型

    1.基础内置类型: 包括数值类型.字符串类型.布尔类型.数组等除5种引用类型和复合类型外都是基础内置类型.当对这些类型的值进行增加或者删除的时候会创建一个新值,因此当把这些类型的值传递给方法或者函数时 ...

  8. js var是什么类型_JS变量的执行环境和生命周期

    温故而知新,这些JS基础知识你都知道吗? 今天和大家分享的是 JavaScript 中有关变量的知识,希望这篇文章能让你对JS中的变量有新的认识. 目录: 变量的执行环境(执行上下文) 执行上下文的生 ...

  9. JS面向对象特性和值类型与复合类型

    JS面向对象之特性已经值类型与复合类型 一些属性 空对象 空对象也是对象, 只是有存变量的变量名, 没有对象属性 var o ={}; 参数传递 值类型: 函数内外两个变量, 两个数据, 都不相同 引 ...

  10. Go圣经-学习笔记之复合类型(二)

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇 Go圣经-学习笔记之复合类型 下一篇 Go圣经-学习笔记之复合数据结构(三) map介绍和简单使用 map是一种无序的 ...

最新文章

  1. 4路组相连cache设计_移动图形处理器的纹理Cache设计
  2. 成功解决The NVIDIA driver on your system is too old (found version 9010). Please update your GPU driver
  3. 全球与中国节能冷却塔销售渠道分布及市场营销状况分析报告2022-2028年版
  4. 交大c语言作业答案,西安交大c语言作业及答案详解.docx
  5. Delphi 与 DirectX 之 DelphiX(55): TDIB.DoMosaic();
  6. 快速入门数据结构和算法
  7. 前端学习(1606):数据请求与json-server
  8. 主成分分析PCA以及特征值和特征向量的意义
  9. docker build 变量_Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务
  10. 如何获得WPA握手包EWSA破解WPA密码教程[zz]
  11. php8新特性全览【超详细】
  12. gentoo——桌面,openbox,silm,Conky,输入法,layman,QQ安装,WPS
  13. 从零开始内网渗透学习
  14. 2018年秋季校招投递记录
  15. 笔记本如何同时上内外网
  16. 《宝岛双雄》曝正式海报 房祖名挑大梁的银幕转型之作
  17. 模仿猫眼电影静态网页展示
  18. 倒排索引-字符串相似匹配(结巴分词、中文转拼音)
  19. 漫步太空和 .net
  20. 速写画面如何画出生动感?眼睛和嘴巴是重要部分~

热门文章

  1. Ubuntu sudo nopasswd方法
  2. Hvv期间蜜罐分析研究
  3. 西门子S7系列中间人攻击:防御和流量异常检测(三)
  4. 543.二叉树的直径 (力扣leetcode) 博主可答疑该问题
  5. qt 展开指定目录_Qt5实战003:Qt Creator工程目录浅析
  6. php5.6 mongo 扩展,docker php5.6镜像创建,包括常用扩展安装
  7. Centos7以上远程连接2003-Can't connect to MySQL server on 'localhost'(10060 Unkn...)
  8. 2本学计算机好就业吗,今年高三了,感觉考不上2本了,想读个好点的大专将来好就业。学什么技术好呢,汽修,数控,计算机还是别的什么,求支招,毕业5年后打算自己开店的。...
  9. (004)每日SQL学习:物化视图之二
  10. 深入理解ES6之——迭代器与生成器