引用与指针

引用:非对象,仅为对象的别名,定义需初始化。

一般初始化变量时,初始值会被拷贝在新对象中

然而定义引用时,程序把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用,

一旦初始化完成,引用和它的初始值对象一直绑定在一起,因为无法令引用重新绑定到另外一个对象

因此引用必须初始化。

因为引用并非对象,所以不能定义引用的引用。

指针:为对象,允许对指针赋值和拷贝,指针无需定义时赋值

和其他内置类型一样,在块作用域内定义的指针如果没有被初始化,也将拥有一个不确定的值

不能定义指向引用的对象,引用非对象

指针的值:

1、指向一个对象

2、指向空对象

3、指向紧邻对象空间的下一个位置

4、无效指针,也就是上述情况之外的其他值

空指针不指向任何对象

生成空指针的方法:

1 int *p1 = nullptr;    //最新的C++标准推荐使用
2 int *p2 = 0;
3 int *p3 = NULL;    //需要导入cstdlib.h

原文地址:https://www.cnblogs.com/soloveu/p/14600642.html