C++中引用的基础知识
2017-04-17 20:36
302 查看
》引用
引用是个别名,建立时须用另一个数据对象(如一个变量)的名字进行初始化,以指定该引用所代表的数据对象。此后,对引用的任何操作实际上就是对所代表的数据对象的操作。系统不会为引用再次分配存储空间。
在类型名后面跟引用运算符“ & ”,以及引用名来创建一个引用。引用名就是一个变量名。
例: int i=1;
int& r=i; // r和i现在引用同一个int对象
int x=r; // x=1
r=2; // i=2
声明r初始化为对i的引用。在此,要求i已经声明或定义,而引用仅仅是它的别名。因此,引用并不占用额外的存储空间。
注:引用运算符与地址操作符使用相同的符号(即运算符重载),但它们的含义不一样。引用运算符只在声明变量的时候使用,它放在类型名的后面。
任何其他一元(单目)运算符 & (注意,该运算符作为二元运算符时为按位“ 与 ”运算符)的使用都是地址运算符。
使用引用时应遵循一定的规则:
>创建引用时,必须立即对其进行初始化(指针则可以在任何时候被初始化)
>一旦一个引用被初始化为一个对象的引用,它就不能在被改变为对另一个对象的引用(指针则可以在任何时候改变为指向另一个对象)
>不可能有NULL引用。必须确保引用是对具体合法的对象的引用(即引用应和一块合法的存储空间关联)
》用引用传递函数参数
引用的一个重要用途就是作为函数的参数。如果有占用空间大的对象(例如一个大的结构对象或类对象)需要作为函数参数传递的时候,在C语言中的做法往往是使用指针,因为这样可以避免将整个实参对象的数据全部复制给形式参数,可以提高程序的执行效率。而在C++中,由于引入了引用的概念,因此既可以使用指针,亦可以用引用来做同样的事情。引用作为参数的最大好处是既可以像指针那样工作,其使用方式又和一般的变量相同。所以引用比指针具有更好的可读性。
引用是个别名,建立时须用另一个数据对象(如一个变量)的名字进行初始化,以指定该引用所代表的数据对象。此后,对引用的任何操作实际上就是对所代表的数据对象的操作。系统不会为引用再次分配存储空间。
在类型名后面跟引用运算符“ & ”,以及引用名来创建一个引用。引用名就是一个变量名。
例: int i=1;
int& r=i; // r和i现在引用同一个int对象
int x=r; // x=1
r=2; // i=2
声明r初始化为对i的引用。在此,要求i已经声明或定义,而引用仅仅是它的别名。因此,引用并不占用额外的存储空间。
注:引用运算符与地址操作符使用相同的符号(即运算符重载),但它们的含义不一样。引用运算符只在声明变量的时候使用,它放在类型名的后面。
任何其他一元(单目)运算符 & (注意,该运算符作为二元运算符时为按位“ 与 ”运算符)的使用都是地址运算符。
使用引用时应遵循一定的规则:
>创建引用时,必须立即对其进行初始化(指针则可以在任何时候被初始化)
>一旦一个引用被初始化为一个对象的引用,它就不能在被改变为对另一个对象的引用(指针则可以在任何时候改变为指向另一个对象)
>不可能有NULL引用。必须确保引用是对具体合法的对象的引用(即引用应和一块合法的存储空间关联)
》用引用传递函数参数
引用的一个重要用途就是作为函数的参数。如果有占用空间大的对象(例如一个大的结构对象或类对象)需要作为函数参数传递的时候,在C语言中的做法往往是使用指针,因为这样可以避免将整个实参对象的数据全部复制给形式参数,可以提高程序的执行效率。而在C++中,由于引入了引用的概念,因此既可以使用指针,亦可以用引用来做同样的事情。引用作为参数的最大好处是既可以像指针那样工作,其使用方式又和一般的变量相同。所以引用比指针具有更好的可读性。
相关文章推荐
- C++入门基础知识:类和引用
- 【C++】基础知识—引用和指针引用
- C++学习之路—引用(一)—基础知识
- C++基础知识点总结之常量与引用
- C++ 基础知识点 五 第6章 指针、引用和动态空间管理
- c++-基础知识-引用
- C++基础知识(const、引用、头文件保护)
- c++基础三(基本知识-变量,常量,枚举,引用)
- C++基础学习笔记----第二课(引用的基础知识)
- <转>C++基础知识: 引用
- c++基础知识(命名空间、输入输出流、重载、缺省、引用)
- C++入门基础知识:类和引用
- c++ 基础知识(输入输出、namespace命名空间、引用、函数重载模版、内存管理)
- C++基础知识——引用
- [003]Reference in C++---C++引用基础知识篇
- C、C++基础知识之 引用与指针区别
- c++基础知识---名字空间
- C++学习基础知识
- 基础知识C++
- 关于HOOK基础知识(windows API ,C++)