指针与引用的区别有:
- 非空区别。指针可以为空,而引用不能。
- 合法性区别。在使用之前指针必须验证合法性,而引用则不用。
- 可修改区别。指针可以被重新赋值以指向不同的对象,而引用则总是在初始化时就固定地指向某对象,过后不可修改,但指向的对象内容可以更改。
- 应用区别。两种情况下应使用指针: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;
}