1 引用(reference)

引用是一个变量的别名,故引用在申明的时候必须给初始值,从此他们就建立了“不能离婚的婚姻关系”,改变引用就会改变被引用的原变量

1 int main()
2 {
3 int x;
4 int &x_r = x; /* 引用x_r在定义的时候必须给一个初始化值 */
5
6 return 0;
7 }

引用的实质就是const指针,是为了代码看起来简洁美观设计的(翁恺说的)

面向对象设计C++-- 浙江大学 -- 翁恺 --国家精品课程(附源代码)

https://www.bilibili.com/video/BV1yQ4y1A7ts?from=search&seid=1378598890214751734&spm_id_from=333.337.0.0

2 引用的基本用法

稍后继续,敬请期待......

3 指针和引用

相同点

都是地址。指针指向的是一块内存的地址,引用指向的是被引用变量的地址别名。

不同点

(1)指针是一个实体,独立存在;而引用是一个别名,必须依赖被引用变量。

(2)指针申明(定义)时可以为nullptr;而引用在声明(定义)时不能为空,必须指定被引用变量。

(3)指针(此处指非const指针)可以指向其他地址,指针“见异思迁”;而引用自申明(定义)起,不能再指向其他地址,引用“从一而终”。

(4)sizeof大小不同。指针为8(在64位机器中,即指针的大小);引用等于被引用变量的大小。

(5)指针不是类安全的,而引用是(有类型检查)。

参看文献

<C++ 值传递、指针传递、引用传递详解 > https://www.cnblogs.com/dingxiaoqiang/p/8012578.html

<C++中引用传递与指针传递区别(进一步整理)> https://www.iteye.com/blog/xinklabi-653643

最新文章

  1. sublime-text3 3059基本配置
  2. Oracle设置自动递增的方法
  3. 使用Nginx镜像代理.NET Core MVC
  4. MAC OS X 系统怎么样?
  5. 开心菜鸟学习系列笔记-----Javascript(1)
  6. QT中槽的使用
  7. POJ 3537 Crosses and Crosses [Multi-SG]
  8. href的理解
  9. 《Java》第九周学习总结
  10. Java JPA @Transient 在Hibernate中应用
  11. poj 3067 Japan 【树状数组】
  12. asp.net core选项Options模块的笔记
  13. 简单的shell脚本练习(一)
  14. 多线程线性 lock
  15. 【Vue.js学习】生命周期及数据绑定
  16. ArcEngine创建要素类_线类型
  17. TensorFlow系列专题(一):机器学习基础
  18. Unity鼠标点击Collider
  19. Java中使用OpenSSL生成的RSA公私钥进行数据加解密
  20. Linux系统——vim编辑器

热门文章

  1. Elasticsearch:inverted index,doc_values及source
  2. FastDFS与nginx配置使用的配置信息
  3. Query String Query和Sumple Query String
  4. Fluentd直接传输日志给Elasticsearch
  5. 1_MySQL
  6. 04_第一个Java程序
  7. HTML&amp;CSS-盒模型运用居中方式合集
  8. Java后端开发——美团(牛客)
  9. springmvc 上传文件时的错误
  10. JUC(3)