复合数据类型
(1)指针
A.What(什么是指针)
用于存放对象地址的复合数据类型
B.Which(有哪些指针)
空指针:
int *p = nullptr; int *p = 0;//(不指向任何对象)
void *:
void *:double dAngle = -180.0; void * p = &dAngle;//(万能指针,可指向任意类型的指针)
底层指针:
const int a=10;
const int *p = &a; //指针指向的是一个常量
顶层指针:
int a = 10;
int const *p=&a; //指针本身就是一个常量类型的指针,不能被重新赋地址
(2)引用
A.What(什么是引用)
引用是变量的别名,在定义的时候就一定要被初始化。
B.How(如何使用)
int a = 10;
int &ra = a;
(3)指针和引用的关系
核心思想:指针是一个对象,而引用不是对象
A.对立性
初始化:指针可以不进行初始化;引用一定要进行初始化
重新赋值:指针可以被重新赋值;引用被初始化后不允许被重新赋值
B.统一性
两者都是对其它对象的间接访问