1、引用就是另一个变量的别名

2、通过引用所做的读写操作实际上是作用与原变量上
引用方式:

int x;
int & rx=x;
or
int x, &rx=x;

在C中&是取地址,在C++中&放在一个变量的定义前,那就是引用

注意:
这种引用是错误的,被引用变量必须先定义
TIP:
C++指针与引用符号应该靠近其类型而非名字
如:

float* x;        //not: float *x;
int& y;         //not: int &y;,这个地方有语法错误,因为应用必须依附于一个对象

引用作为函数参数:

引用可做函数参数,但调用时只需要传普通变量即可。

在被调函数中改变引用变量的值,则改变的是实参的值

int main()
{int x = 0;int y{ 10 };int& rx = x;rx = 8;cout << x << endl;return 0;
}

输出结果:8

int main()
{int x = 0;int y{ 10 };int& rx = x;rx = 8;const char* s = "Hello";const char* t = "World";const char*& r = s;     //r引用的是scout << r << endl;return 0;
}

输出:Hello

当一个引用变量绑定了一个变量,它的引用变量的关系就不能改变了

int main()
{int x = 0;int y{ 10 };int& rx = x;rx = 8;const char* s = "Hello";const char* t = "World";const char*& r = s;     //r引用的是s,当一个引用变量绑定了一个变量,它的引用变量的关系就不能改变了r = t;      //s=t;      将World变量的首地址放到变量r里面cout << r << endl;cout << s << endl;return 0;
}


记住:

当我们对引用对象进行操作的时候,实际上就是对引用所绑定的对象进行赋值。

引用本身存放的是引用对象的地址 。

另外: 遇到 & 运算符时,怎样才能判断它是哪个含义呢

  1. 位与
  2. 取地址
  3. 定义一个引用类型

靠着右边取地址(&x),靠着左边是引用(int&),挂在中间与运算(a & b)

更深层次的含义以及测试手段见:
https://www.cnblogs.com/KaiMing-Prince/p/9741393.html
https://app.yinxiang.com/fx/c1155235-33c5-4d6b-9576-1f1d374c9f29

【C++ grammar】引用相关推荐

  1. Grammar API

    <span style="font-size:24px;">public abstract class Grammar implements Configurable, ...

  2. Learning Pose Grammar to Encode Human Body Configuration for 3D Pose Estimation论文阅读笔记

    文章目录 论文内容 创新点 网络结构 表示方式 Base 3D-Pose Network 3D-Pose Grammar Network-BRNN 运动学语法(Kinematic grammar) 对 ...

  3. Go 学习笔记(65)— Go 中函数参数是传值还是传引用

    Go 语言中,函数参数传递采用是值传递的方式.所谓"值传递",就是将实际参数在内存中的表示逐位拷贝到形式参数中.对于像整型.数组.结构体这类类型,它们的内存表示就是它们自身的数据内 ...

  4. [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解

    模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...

  5. java 无法取消引用_Java的新手,并出现错误“无法取消引用int” - java

    我是java的新手,并且已经从事了一段时间,但是仍然收到错误消息:无法取消引用int.我看到了几个类似的问题,但仍然无法弄清自己的情况. 这是完整的代码: package inclass; class ...

  6. C++ 对象的声明与引用

    C++ 对象的声明的格式: 类名 对象名 (多个对象名之间用逗号隔开) 声明1个对象: People student; 声明多个对象 People student,student1,student2; ...

  7. Android 弱引用 (WeakReference)的使用

    1 弱引用 (WeakReference) 弱引用对象,这些对象不会阻止对其引用对象进行终结,终结和回收.弱引用最常用于实现规范化映射.假设垃圾收集器在某个时间点确定对象是弱可到达的.到那时,它将自动 ...

  8. Android 打包 aar文件的流程以及aar的引用

    打包aar 分为原项目打包成aar 和新建module 打包成aar 1 原项目打包成aar 文件 需要把项目先变成库 把apply plugin: 'com.android.application' ...

  9. 父类引用指向子类对象

    父类引用指向子类对象,如何访问子类的属性? 1.第一种办法最简单,强制类型转化为子类. 2.父类引用指向子类对象,由于当前引用为父类,只能访问父类的字段和方法,但是根据多态性可以访问子类的方法,在这个 ...

最新文章

  1. 备战金九银十,阿里P8师兄指导完整攻略(附:学习资料+面试宝典+项目实战笔记)
  2. html输入邮箱的文本框,自动生成邮箱号并填入input输入框的实现方法
  3. Python列表之for循环应用
  4. 噪声的频谱分析的重要意义_噪声测量:噪声源识别与定位的方法简析
  5. mybatis查询返回null解决方案
  6. DataTable.select()
  7. 【队列+模拟】机器翻译 luogu-1540
  8. Android自定义View【实战教程】3⃣️----Paint类、Path类以及PathEffect类详解
  9. android runtime异常,在做android下拉刷新时遇到异常java.lang.RuntimeException: Can't create handle...
  10. dmx512 java_什么书通过软件层讲解DMX512协议
  11. win10投影到电脑无法成功,一直显示即将投影
  12. Ingress暴露服务的方式
  13. 华三HCL模拟器添加虚拟网卡连接外网、VMware虚拟机、实体机方法
  14. 【机器学习】sklearn机器学习入门案例——使用k近邻算法进行鸢尾花分类
  15. 标志寄存器(flag)
  16. 阿里云函数计算快速入门
  17. c51中断优先级c语言,51单片机中断优先级设置,中断优先级如何设置
  18. 宜信研发邮件POP3/SMTP测试
  19. 基于libhid/libusb进行usb传输数据
  20. 【转载】古典浏览器缓存和Service Worker对比

热门文章

  1. 关于一些常见智柜问题的分析及解决办法
  2. React组件实现越级传递属性
  3. 课时28.假链接(掌握)
  4. WPF 中的设备无关单位
  5. 批处理:修改COM端口号
  6. Bash 脚本 set 命令教程
  7. [TypeScript] Export public types from your library
  8. P4336 [SHOI2016]黑暗前的幻想乡
  9. elasticsearch-6.0.1安装
  10. BZOJ 3505 [Cqoi2014]数三角形(组合数学)