C++中的引用

原创 2011年01月13日 15:20:00

【导读】
  介绍C++引用的基本概念,通过详细的应用分析与说明,对引用进行全面、透彻地阐述 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。
  【引用简介】
  引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
  引用的声明方法:类型标识符 &引用名=目标变量名;
  【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名
  说明:
  (1)&在此不是求地址运算,而是起标识作用。
  (2)类型标识符是指目标变量的类型。
  (3)声明引用时,必须同时对其进行初始化。
  (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。
  ra=1; 等价于 a=1; 
  (5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。
  (6 ) 不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名.
  (7)不能建立引用的引用,不能建立指向引用的指针。因为引用不是一种数据类型,所以没有引用的引用,没有引用的指针。
  例如:
  int n;
  int &&r=n;//错误,编译系统把"int &"看成一体,把"&r"看成一体,即建立了引用的引用,引用的对象应当是某种数据类型的变量
  int &*p=n;//错误,编译系统把"int &"看成一体,把" *p "看成一体,即建立了指向引用的指针,指针只能指向某种数据类型的变量
  (8)值得一提的是,可以建立指针的引用
  例如:
  int *p;
  int *&q=p;//正确,编译系统把" int * "看成一体,把"&q"看成一体,即建立指针p的引用,亦即给指针p起别名q。
  注意:学会这种分析方法,把什么看成一体,又把什么看成一体
  引用格式:一般在文章的注解中提到或在文中直接写出,也可以加引号(20字以下不用)

C++之引用的详解

详细剖析c++中的引用,消除心中久疑虑,拨开云雾见天明。交流学习,共同进步。...
  • Xiao__Tian__
  • Xiao__Tian__
  • 2016年07月03日 12:46
  • 11016

C++ : 引用的实质理解 !!!!

引用的定义:在类型和标识符之间加上一个取地址符,说明该标识符为指定类型的引用         如: int &ref = num;   就是ref是一个int型的引用     引用有什么作用呢?...
  • cy_weiyi
  • cy_weiyi
  • 2015年07月12日 17:09
  • 327

C++中引用是用来做什么用的,有什么好处

C语言没有引用,C++才有. 引用能起到指针的部分作用,但是比指针安全. 一个引用可以看作是某个变量的一个"别名"。对引用进行操作就像对原变量进行操作一样。 主要用于函数的参数传递时...
  • lee1054908698
  • lee1054908698
  • 2012年03月08日 09:52
  • 5820

C++中指针和引用的区别(超详细)

指针和引用主要有以下区别: 引用必须被初始化,但是不分配存储空间。指针不声明时初始化,在初始化的时候需要分配存储空间。 引用初始化后不能被改变,指针可以改变所指的对象。 不存在指向空值的...
  • weikangc
  • weikangc
  • 2015年11月10日 17:40
  • 987

C++引用本质

在看这篇文章之前,请你先要明白一点:那就是c++为我们所提供的各种存取控制仅仅是在编译阶段给我们的限制,也就是说是编译器确保了你在完成任务之前的正确行为,如果你的行为不正确,那么你休想构造出任何可执行...
  • zhubosa
  • zhubosa
  • 2013年09月09日 20:58
  • 2040

[引用区别] c++中引用与java中引用区别

在Java中,类实例声明和构造是分开。"T a;"是声明,而"a=new T();"才是构造。引用声明和C++相同。但是Java的机制与C++不同,Java中的引用也叫句柄,或者说句柄才是其真实名称。...
  • WaitForFree
  • WaitForFree
  • 2016年03月31日 21:08
  • 3485

C++之类对象的返回与引用

一、类对象的返回 在拷贝构造器中提到过:class A{}; A func(A a){ return a; }int main(){ A x; func(x); }调用fun...
  • maoliran
  • maoliran
  • 2016年05月30日 11:19
  • 3210

C++中<>和“”引用头文件的区别

以前在引用头文件时,总是不假思索的使用和“”是一样的。但其实不然,是从标准类库中引用头文件,而我们自己在工程自己创建的没有加入到标准类库中的头文件是无法引用的,这种情况下,我们必须要用“”进行引用~...
  • qwezhaohaihong
  • qwezhaohaihong
  • 2017年07月26日 14:54
  • 262

C++中引用之常引用

引用&分为普通引用和常引用。 知识架构: void main() { //普通引用 int a = 10; int &b = a; printf("b:%d \n", b); //常引...
  • patkritLee
  • patkritLee
  • 2016年02月17日 22:54
  • 1496

C++引用原理剖析

在理解引用概念前,先回顾一下变量名。 变量名实质就是一段连续存储空间的别名(内部有自己的编号),是一个标号(门牌号),程序需要通过变量来申请并命名内存空间(编译器建立与内存地址的联系)? 那么问题...
  • tbl1234567
  • tbl1234567
  • 2016年07月09日 14:01
  • 293
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++中的引用
举报原因:
原因补充:

(最多只允许输入30个字)