C++中的引用
来源:互联网 发布:长沙软件学校 编辑:程序博客网 时间:2024/05/23 19:16
一.引用
1. 定义:引用为对象起了另外一个名字,通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名:
int a = 1024;
int &b = a;
其中b就是a的另一个名字。
2. 一般在初始化变量时,初始值会被拷贝到新建的对象中。然而定义引用时,程序把引用与它的初始值“绑定”在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值一直绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化。
如:int &b; 就是错误的。
3. 引用并非对象,相反的,它只是为一个已经存在的对象所起的另外一个名字。
4. 定义一个引用之后,对其进行的所有操作都是在与之绑定的对象上进行的:
int a = 1024;
int &b = a;
b = 2; //把2赋值给b指向的对象,也就是将2复制给a
二.const引用
1. const引用可以把引用绑定到const对象上,就像绑定到其它对象上一样,我们也可以称之为“对常量的引用”。
2. 与普通引用不同的是,对常量的引用不能被用作修改它所绑定的对象:
const int c = 10;
const int& m = c; //正确:引用及其对应的对象都是常量
m = 5; //错误:m是对常量的引用
int & n = c; //错误:试图让一个非常量引用指向一个常量对象
三.指针与引用的区别
1. 从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。
2.
(1)指针是一个实体,而引用仅是个别名;
(2)引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;
(3)引用没有const,指针有const,const的指针不可变;
(4)引用不能为空,指针可以为空;
(5)“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小;
(6)指针和引用的自增(++)运算意义不一样;
(7)引用是类型安全的,而指针不是 (引用比指针多了类型检查)
- c语言中的引用
- 【C++】:C++中的引用
- 深入探讨C 中的引用
- 深入探讨C 中的引用
- C++/CLI中的引用类型
- 深入探讨C 中的引用
- C++中的引用
- [C++]C++中的引用(转)
- 【引用】C中的类型转换
- C语言中的引用调用
- 深入探讨c++中的引用
- C/C++中的指针、引用和JAVA中的引用
- C/C++中的引用和指针
- c语言形参中的引用变量
- C/C++中的引用和指针
- C/C++中的引用和指针
- c语言实现cpp中的引用传递
- C和C++中的引用和指针
- (八)、Java复习笔记之 I/O 流(2)
- 将本地文件托管到github的教程
- C语言之初
- LightOJ
- 人工智能领域中日渐升温的几个分支领域
- C++中的引用
- 初始化变量
- Frequent values poj3368 线段树
- 【西普实验吧】斐波那契数列分值
- [arc065f]Shuffling
- python多线程编程(1)
- python中的*args与**kwgs的含义与作用
- bzoj1024: [SCOI2009]生日快乐
- 输出水仙花数