int a = 10;
int &b = a;

以上声明b是a的引用,如果a或者b的值发生改变,另外一个也同时改变。

可以通过以下代码来验证:

a = 20;
assert(a == b);

全部代码:

#include <iostream>
#include <assert.h>
using namespace std;void swap(int& i , int& j) {int tmp = i;i = j;j = tmp;
}int main() {int a = 10;int &b = a;assert(a == b);a = 20;assert(a == b);int i = 10;int j = 20;swap(i, j);assert(i == 20);assert(j == 10);return 0;
}

在C++中,引用就是给一个变量起了一个别名,引用和被引用的量实际指向的都是同一个值

以下我们通过代码来验证:

#include <iostream>
#include <assert.h>
using namespace std;class A03 {public:void run() {cout << "this:" << this << endl;}
};void say(A03 a03) {a03.run();
}int main() {A03 a;a.run();say(a);return 0;
}

运行run函数会打印当前对象的地址,我们会发现a.run()和say函数中打印的值是不一样的:

address:0x7fff1bb15217
address:0x7fff1bb151ff

如果我们把 say 修改为 :

void say(A03& a03) {a03.run();
}

再运行发现每次打印值都是一样的:

address:0x7ffc36a1f2d7
address:0x7ffc36a1f2d7

证明了上述说法是正确的。

C++ 引用类型 References入门相关推荐

  1. DFPlayer Mini单片机-让你的Arduino Uno会唱歌

    Introduction DFPlayer Mini是一款MP3模块,可以直接接驳扬声器.模块配合供电电池.扬声器.按键可以单独使用,可作为Arduino UNO的一个模块. 这里主要配合Uno讲解使 ...

  2. Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector

    文章目录 GC的优缺点 引用的四种类型 对象标记算法 引用计数法 可达性分析法 回收算法 标记-清除算法(Mark-Sweep) 复制算法 标记-整理算法(Mark-Compact) 分代收集算法 常 ...

  3. envi 文件 生成mat_JVM 内存分析工具 MAT 的深度讲解与实践——入门篇

    1. MAT 工具简介 MAT(全名:Memory Analyzer Tool),是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具.其通过展现 JVM 异常时所记录的运行时堆转储快照(Hea ...

  4. 【Mybatis从入门到实战教程】第一章 Mybatis 入门

    一.Mybatis 入门 1.1 什么是MyBatis MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了goo ...

  5. 京东必考JVM 问题诊断快速入门

    JVM 问题诊断快速入门 JVM 全称为 Java Virtual Machine,翻译为中文 "Java 虚拟机".本文中的JVM主要指 Oracle 公司的 HotSpot V ...

  6. 万字 MyBatis 带你从入门到精通!!!

    文章目录 MyBatis 1. 入门使用 1.1 导入相关 Maven 依赖 1.2 创建并配置核心文件 1.3 编写 MyBatis 工具类 1.4 编写实体类 1.5 编写实体类对应的 Mappe ...

  7. C++11中rvalue references的使用

    Rvalue references are a feature of C++ that was added with the C++11 standard. The syntax of an rval ...

  8. json vue 对象转数组_vue 基础入门(一)修改

    vue基础入门(一) 1. 什么是vue Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架. Vue 只关注视图层, 采用自底向上增量开发的设计. Vue 的目标 ...

  9. tcp reno_如何使用称为Reno Expo的简单入门工具包构建全栈应用程序

    tcp reno Building any new project from scratch can be intimidating. There's a lot to decide before y ...

最新文章

  1. python操作word文档(python-docx)
  2. php获取目录文件 排序输出,php实现对文件夹目录中的文件进行排序的方法
  3. 03-25实验一、命令解释程序的编写
  4. Gitlab代码托管服务器安装
  5. MySql取得日期(前一天、某一天)
  6. C语言srand((unsigned)time(NULL))…
  7. 練習重繪TreeView控件
  8. 给萌新HTML5 入门指南
  9. android 将.txt文件转化为.db并使用raw下的数据文件
  10. android studio 工程rebuild没反应,Andriod Studio Clear Project或Rebuild Project出错
  11. 《洞见》罗伯特·赖特
  12. 麻辣香锅(Spicy Hot Pot)浏览器劫持病毒应急方法
  13. EasyTouch插件是否还在使用?
  14. access和wps哪个一样_同是办公软件,wps跟office有什么区别
  15. drcom上网登录窗不弹出_无线网络连接后不能弹出浏览器登录页面是怎么回事?
  16. python代码分享(代码:多功能整合件【有摩根密码】/西普大陆/超级对战/宝藏)(2)
  17. 快手小店通效果好吗?
  18. 国外长高书籍内有详细锻炼方法
  19. CEFSharp 浏览器控件截图空白的解决方法
  20. IBMMQ的使用总结

热门文章

  1. C语言疑难点汇总解析
  2. lc谐振计算机网络,LC谐振网络工作模式分析
  3. Nodejs之Express框架
  4. 基于Blinker ESP8266 远程电压电流、功率计、温湿度计、ADC接口测温、温控风扇、低电压保护、低压报警功能。用来监测我的太阳能充电。SSD1306可轮番显示电压信息和温度信息。APP图表
  5. python因子分析 ic值 函数_Python——因子分析(KMO检验和Bartlett's球形检验)
  6. HuggingFace简明教程
  7. 我常用的两个翻译神器,程序员必备.
  8. 计算机导论课后总结四
  9. 不用密码解密压缩文件(CRC32算法)
  10. 一、Git介绍、以及原理