首先学习c++的时候,我们肯定会有一个疑问,c++既然继承了c的一些东西,肯定可以使用指针,但是为什么会出现‘引用’。欲知为何,待我细细道来:
C++里为什么会有引用?
答:1)不用担心NULL的问题
2)c++里要进行运算符重载,使用引用会比指针更好
3)引用是编译器层的东西,编译完后并不会占用内存,而指针是个数据,是要单独占用内存保存的
【引用】:编译器不会为引用变量开辟内存空间。
1)1. 引用在定义时必须初始化。
2. 一个变量可以有多个引用。
3. 引用一旦绑定了一个实体,就不能再改变为其他变量的引用
2)。注意:不要返回栈内存的引用
【引用和指针】:
a.两者底层实现方式相同
b引用必须初始化,但是指针正常情况下初始化为NULL
c.引用一旦定义就不能改变,但是指针可以
e.sizeof求其大小:
引用:与所求变量的类型有关
指针:与所求变量类型无关
d.自加自减意义不同:
引用:是数值的加减
指针:是地址的改变
f.有多级指针没有多级引用
再次总结:
总结:
1、引用在定义时必须初始化,指针没有要求。
2、一旦一个引用被初始化为指向一个对象,就不能再指向
其他对象,而指针可以在任何时候指向任何一个同类型对象
3、没有NULL引用,但有NULL指针。
4、在sizeof中含义不同:引用结果为引用类型的大小,
但指针始终是地址空间所占字节个数。
5、引用自加改变变量的内容,指针自加改变了指针指向
6、有多级指针,但是没有多级引用