复合类型是基于其他类型定义的类型,下面将介绍其中的引用和指针。
一、引用
1.这里的引用主要是指“左值引用”,c++11还有用于内置类的“右值引用”
2.引用为对象(不能是字面值)起了另外一名字(引用即别名),引用类型引用另外一种类型。写法如下,
int a = 100;
int& score = a;//int &score=a;
score++;
3.引用必须初始化,一旦初始化完成,引用将和他的初始化对象一直绑定在一起(无法重新绑定)
4.不能为非常量引用绑定字面值
const int& a = 40; //正确
int& b = 40; //错误
5.引用不是对象,只是为对象起了另外的名字,所以不能定义引用的引用
6.对引用的操作等价于对对象的操作
二、指针
1.生成空指针的几个方法
int* p = nullptr; //优先使用(c++11)
int* p = 0; int* p = NULL; //引用cstdlib
2.void*指针(≠空指针)可以存放任意对象的地址,常用于强制转化