引用(reference)

概念

引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。

一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。

用法

变量名称是变量附属在内存位置中的标签,所以可以把引用当成是变量附属在内存位置中的第二个标签。

即可以通过原始变量名称或引用来访问变量的内容。

int i=1;
int& x=i;

在这个声明里&读作引用,这个声明可以读作 "x是一个初始化为i的整型引用"。

但是需要注意,引用必须进行初始化,而且不能直接引用常量。

int& x;//错误的写法
int& x=3;//也是错误

如果要引用常量的话,前面必须加上const。

const int& x=3;//对的写法

原因的话,是因为后面可能会对引用的进行复制,常量不能进行赋值,所以直接引用常量是错的,而加上const就好了。

使用引用和使用指针相比的话有一个好处,就是不需要测试其有效性。因为在引用一定会有指向的。

使用引用参数

实践一下,看看使用引用参数能不能交换2个函数的值

#include<iostream>
using namespace std;
void swap(int& ,int& );//使用引用参数。
int main()
{
int n1=3,n2=5;
swap(n1,n2);
cout<< n1 << "\t" << n2 <<endl;
return 0;
}
void swap(int& a,int& b)
{
int t;
t=a;
a=b;
b=t;
}



结果是成功交换,因为在使用引用参数时,传进函数的就已经不是形参,而是本体实参了。

当然这个的话指针也可以做到。但有一些使用引用的理由。

1.可以更简便地书写代码。

2.可以直接传递某个对象,而不是直接把对象复制一份。

最新文章

  1. Python:基本语法1
  2. BZOJ 3489 A simple rmq problem(可持久化线段树)
  3. git remove cache
  4. JSP页面动态联动
  5. 计算器显示e-005什么意思
  6. C++中Reference与指针(Pointer)的使用对比
  7. JeeSite 企业信息管理系统基础框架
  8. linux下开机启动脚本的方法
  9. (翻译)使用Api分析器与Windows兼容包来编写智能的跨平台.NET Core应用
  10. ios 访问隐私信息 info.plist 中的字段
  11. MySQL Block Nested Loop and Batched Key Access Joins(块嵌套循环和批量Key访问连接)
  12. 一些常见的Java面试题 &amp; 面试感悟
  13. windows下consul利用json文件注册服务
  14. asynchronous.js
  15. [尝鲜]妈妈再也不用担心 dotnet core 程序发布了: .NET Core Global Tools
  16. SIP 认证
  17. SQL Server物化视图学习笔记
  18. css动效库animate.css和swiper.js
  19. jquery阻止表单提交
  20. session 之session混乱解决方法(转)

热门文章

  1. mysql从零开始之MySQL 选择数据库
  2. windows下编译caffe出现错误 C4996: &#39;std::_Copy_impl&#39;: Function call with parameters that may be unsafe?
  3. 分布式锁Redission
  4. Go语言核心36讲(Go语言基础知识二)--学习笔记
  5. JVM堆内存泄露分析
  6. 人力节省 50%,研发效能提升 40%,阿里 Serverless 架构落地实践
  7. Tomcat各种日志的关系与catalina.out文件的分割
  8. 关于SSTI的坑
  9. pycharm中安装和使用sqlite过程详解
  10. Java:并发笔记-01