Pointers And References

2014/07/19

指针与引用的区别有:

  1. 非空区别。指针可以为空,而引用不能。
  2. 合法性区别。在使用之前指针必须验证合法性,而引用则不用。
  3. 可修改区别。指针可以被重新赋值以指向不同的对象,而引用则总是在初始化时就固定地指向某对象,过后不可修改,但指向的对象内容可以更改。
  4. 应用区别。两种情况下应使用指针:1,存在不指向任何对象的可能;2,需要在不同时刻指向不同的对象。如果总是指向一个对象且一直不变,则使用引用。

代码实例:

#include <iostream>
using namespace std;
int main() {
    int iv;
    int iv2 = 1024;
    int iv3 = 999;
    int &reiv; // 编译错误,引用声明时未初始化
    int &reiv2 = iv;
    int &reiv3 = iv;
    int *pi; *pi = 5;//运行时错误,欲修改未知地址的内容
    cout << pi << endl; pi = &iv3;
    cout << pi << endl;
    const double di;//编译错误,const常量声明时未初始化
    const double maxWage = 10.0;
    const double minWage = 0.5;
    const double *pc = &maxWage;
    return 0;
}