引用与指针概念
引用是C++里面的一个概念,主要指左值引用,C++11标准后增加了右值引用,用于内置类。
引用,是为对象另起一个名字引用类型引用另外一种类型。
通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名
举例:
int ival = 1024;
int &refVal = ival;// refVal指向ival(refVal是ival的另一个名字)
int &refVal2;//报错,引用必须被初始化
指针在C语言和C++中都会使用。
指针与引用的区别:
1.指针本身就是一个对象,允许对指针进行赋值和拷贝,而且在指针的声明周期内,它可以指向几个不同的对象。
引用不是对象,他只是为已经存在的一个对象起的起的另外一个名字,对其所有的操作都是在与之绑定的对象上进行的,所以他只能绑定一个对象,不能更改绑定对象。
2.指针无需在定义时赋值,和其他内置类型一样,在块作用域内定义的指针如果没有被初始化,将拥有一个不确定的值。
引用不是对象,是为对象起的另外一个名字,程序会把引用和对象的初始值绑定,而不是拷贝给引用,无法将引用绑定到另外一个对象上,因此引用必须初始化。
3.引用本身不是对象,所以不能定义引用的引用。指针不同,它是对象,可以定义指针的指针。