引用与指针不同:
1.没有空引用,一个引用必须总代表某个对象,C++因此要求引用必须有初值,pointers没有这样的限制
1 string& rs; //error 2 string& re = s; //ok 3 string *ps; //ok 4 5 char *pc = 0;//将pc设定为NULL 6 char& rc = *pc; //error
2.pointers 可以被重新赋值,指向另一个对象;references总是代表它最初获得的那个对象
1 string s1("Nancy"); 2 string s2("Bob"); 3 4 string& rs = s1; //rs代表s1 5 string *ps = &s1; //ps指向s1 6 rs = s2; //等价于 s1=s2,将s2赋值给s1 7 //因为rs仍代表s1,但是s1的值现在变成了Nancy 8 ps = &s2; //ps现在指向了s2,s1没有变化
3.实现某种操作符时,也需要用到references