学习目标:

掌握引用变量的用法及其本质


学习内容:

1.引用的概念

引用是已定义的变量的别名(另一个名称),两者用法完全一样。同类理解  typedef 是给类型起别名。

2.声明与定义

一、基本数据变量的引用

定义时就要初始化 ,不能再指向其他  ,  引用变量的地址相同

//一个变量可多个引用
int a=12;
int &b=a;
int &c=b;
int &d=b;
//不能在指向其他   eg:
int x=10;
int y=20;
int &a=x;
int &a=y;

二、常量的引用

const int &a=10;
const char &c='x';
const float &f=12.123;

三、复合数据类型的引用

数组的引用

//一维数组的引用
int arr[5];
int(&k)k[5]=arr;
//二维数组的引用
int arr1[3][4];
int(&a)[3][4]=arr1;

结构体的引用  类型&引用名=结构体实例;

指针的引用:

int *p=NULL;
int* &a=p;

3.引用与函数

引用做函数参数值:

void fun1(int &x)
{x=10;cout<<x<<endl;
}
int main()
{int a=20;fun1(a);cout<<a<<endllreturn 0;
}                //输出 x=10;a=10;void fun2(int x)
{x=10;cout<<x<<endl;
}
int main()
{int a=20;fun2(a);cout<<a<<endl;return 0;
}            //输出 x=10;a=20;

4.引用与指针的区别

一、引用声明时就要初始化,指针不用  eg :int *p=NULL;

二、引用不能指向其他变量(int &a=b,int &a=c),指针可以任意指向

三、引用不占用空间,指针会占用空间

四、引用效率更高

五、引用更加安全,指针可以偏移

六、指针更加灵活,直接操作地址,指针 c/c++都适用 , 引用只适用于c++

5.&的三种作用

声明变量时有& 表示引用,eg:int & a=b;

变量前直接加& 表示取地址变量,eg : int *p=&a;

数&数,表示位与运算;

C++重点之“引用变量”用法相关推荐

  1. linux快捷键 赋值,2_Shell语言———bash的快捷键、变量声明、引用变量及变量替换...

    一.初识bash Bash是一种解释型语言,但它也提供了交互式接口,支持变量,因此提供了编程环境,所以可以称bash为程序语言. 解释型语言属于弱类型语言,其特点为: 1.它不强制区分变量类型,即无论 ...

  2. 动态改变标题_插入控件-gt;引用变量-gt;实现动态图表纵横筛选

    欢迎关注我的微信公众号:HR爱玩儿Excel和PPT,分享有趣又有逼格的Excel和PPT创意和技巧,emmm...不关注也没有关系...哼 昨晚没睡好,因为睡前老友跟我说了句话: 我们总部做的表没有 ...

  3. const修饰指针和引用的用法【转贴】

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  4. JS高级程序设计读书笔记(第五章 引用变量)

    第五章 引用变量 Object 创建 Object 实例的方式有两种.第一种是使用 new 操作符后跟 Object 构造函数,另一种方式是使用对象字面量表示法. var person = new O ...

  5. C++ | 引用变量

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

  6. 简单介绍SQLserver中的declare变量用法

    这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...

  7. php的引用变量与销毁机制

    在php中,符号"&"表示引用. 1.看看不引用的情况是这样子: $a  = "hello world";//定义一个变量,下面赋值给$b $b = $ ...

  8. C++_引用变量探究

    什么是引用 引用变量是已定义变量的别名. 如何定义引用变量: int rats; int & rodents = rats; 其中&不失地址运算符,而是类型标识符的一部分.就行声明ch ...

  9. 【Android RTMP】x264 图像数据编码 ( Camera 图像数据采集 | NV21 图像数据传到 Native 处理 | JNI 传输字节数组 | 局部引用变量处理 | 线程互斥 )

    文章目录 安卓直播推流专栏博客总结 一. NV21 数据传入 Native 层 二. jbyte * 数据类型 ( Java 中的 byte[] 数组传入 JNI 处理方式 ) 三. 局部引用处理 四 ...

最新文章

  1. 金山发布《2006年度信息安全报告》
  2. springData jpa update delete
  3. springfox源码_Spring boot整合Springfox在线生成restful的api doc
  4. Python学习 :面向对象 -- 成员修饰符
  5. alert 回调_JavaScript中到底什么时候回调函数Callback
  6. php inputcsv,php excel格式(csv)数据导入导出(示例)
  7. 适用于Photoshop的人像美容磨皮ps插件:Beauty Retouch Panel 2021 Mac
  8. 内核管理 之 内核管理概述
  9. OceanBase 十年:一群追梦人的成长史
  10. 遍历删除List中的元素,会报错? 用iterator.remove() 完美解决
  11. Windows 和 Ubuntu双系统时间同步设置方法
  12. 制定Windows重要安全计划——12步纲要
  13. Delphi2010正式版的代码格式化及自动完成
  14. STM32接收红外遥控数据
  15. UPS 笔记 (逆变电源 DSP)
  16. MCE公司:重磅!明星靶点TLR4助力攻克脑血管难题!
  17. php mysql scalar_symfony和doctrine及数据库操作 | 学步园
  18. 登录实例失败,原因: 连接实例 i-wz972sda3z2cf3u3t9a1 (47.112.162.228:3389) 超时: 10 秒,请检查网络是否可达或者白名单设置
  19. 四平师院计算机学院,永远的四平师院
  20. 分布式电商项目五:使用人人开源搭建前后分离的后台管理系统

热门文章

  1. CentOS 7作为客户端使用socks5代理上网
  2. Python程序员经常会遇到文件权限问题,例如在打开或写入文件时出现“PermissionError: [Errno 13] Permission denied...
  3. python 服务端渲染_客户端渲染与服务端渲染
  4. python和C++
  5. CocosCreator之KUOKUO带你做自己的艺术数字字体
  6. 为什么Microsoft账号登录显示暂时停用你的账户_Apple ID 被锁定或停用怎么办?
  7. 从0部署Tekton之Tekton安装
  8. 几种典型静电场的场强、电势
  9. 液晶屏 TTL屏、LVDS屏、TMDS屏区别
  10. Qt音视频开发01-共享解码线程(耗时一年/性能凶残/至臻完美)