【C++ grammar】引用
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;
}
记住:
当我们对引用对象进行操作的时候,实际上就是对引用所绑定的对象进行赋值。
引用本身存放的是引用对象的地址 。
另外: 遇到 & 运算符时,怎样才能判断它是哪个含义呢
- 位与
- 取地址
- 定义一个引用类型
靠着右边取地址(&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】引用相关推荐
- Grammar API
<span style="font-size:24px;">public abstract class Grammar implements Configurable, ...
- Learning Pose Grammar to Encode Human Body Configuration for 3D Pose Estimation论文阅读笔记
文章目录 论文内容 创新点 网络结构 表示方式 Base 3D-Pose Network 3D-Pose Grammar Network-BRNN 运动学语法(Kinematic grammar) 对 ...
- Go 学习笔记(65)— Go 中函数参数是传值还是传引用
Go 语言中,函数参数传递采用是值传递的方式.所谓"值传递",就是将实际参数在内存中的表示逐位拷贝到形式参数中.对于像整型.数组.结构体这类类型,它们的内存表示就是它们自身的数据内 ...
- [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解
模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...
- java 无法取消引用_Java的新手,并出现错误“无法取消引用int” - java
我是java的新手,并且已经从事了一段时间,但是仍然收到错误消息:无法取消引用int.我看到了几个类似的问题,但仍然无法弄清自己的情况. 这是完整的代码: package inclass; class ...
- C++ 对象的声明与引用
C++ 对象的声明的格式: 类名 对象名 (多个对象名之间用逗号隔开) 声明1个对象: People student; 声明多个对象 People student,student1,student2; ...
- Android 弱引用 (WeakReference)的使用
1 弱引用 (WeakReference) 弱引用对象,这些对象不会阻止对其引用对象进行终结,终结和回收.弱引用最常用于实现规范化映射.假设垃圾收集器在某个时间点确定对象是弱可到达的.到那时,它将自动 ...
- Android 打包 aar文件的流程以及aar的引用
打包aar 分为原项目打包成aar 和新建module 打包成aar 1 原项目打包成aar 文件 需要把项目先变成库 把apply plugin: 'com.android.application' ...
- 父类引用指向子类对象
父类引用指向子类对象,如何访问子类的属性? 1.第一种办法最简单,强制类型转化为子类. 2.父类引用指向子类对象,由于当前引用为父类,只能访问父类的字段和方法,但是根据多态性可以访问子类的方法,在这个 ...
最新文章
- 备战金九银十,阿里P8师兄指导完整攻略(附:学习资料+面试宝典+项目实战笔记)
- html输入邮箱的文本框,自动生成邮箱号并填入input输入框的实现方法
- Python列表之for循环应用
- 噪声的频谱分析的重要意义_噪声测量:噪声源识别与定位的方法简析
- mybatis查询返回null解决方案
- DataTable.select()
- 【队列+模拟】机器翻译 luogu-1540
- Android自定义View【实战教程】3⃣️----Paint类、Path类以及PathEffect类详解
- android runtime异常,在做android下拉刷新时遇到异常java.lang.RuntimeException: Can't create handle...
- dmx512 java_什么书通过软件层讲解DMX512协议
- win10投影到电脑无法成功,一直显示即将投影
- Ingress暴露服务的方式
- 华三HCL模拟器添加虚拟网卡连接外网、VMware虚拟机、实体机方法
- 【机器学习】sklearn机器学习入门案例——使用k近邻算法进行鸢尾花分类
- 标志寄存器(flag)
- 阿里云函数计算快速入门
- c51中断优先级c语言,51单片机中断优先级设置,中断优先级如何设置
- 宜信研发邮件POP3/SMTP测试
- 基于libhid/libusb进行usb传输数据
- 【转载】古典浏览器缓存和Service Worker对比