#include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int a = 5; int& ref = a; int* ptr = &a; cout << &a<<" "<<&ref<<" "<<ptr; printf(" "); return 0; }
对于一个内存单元,它有一个名字a,引用就是它的别名,即ref。指针ptr的内容是内存单元a的地址值。
引用不能指向空值,所以引用在被定义时必须初始化,指向另一个对象。指针可以指向对象,也可以指向空值。
引用在被初始化后就不能再被改变(不能成为另一个对象的引用),而指针可以变化,从而动态地指向不同内存单元。
由上一条得知,引用没有const。指针可以加const,表示不能改变的指针。