指针与应用的区别:《程序员面试宝典的一道题目》
1、《程序员面试宝典》P66的一道题目很好的讲明白了引用与指针的区别:
#include<iostream> using namespace std; int main() { int iv; int iv2=1024; int iv3=999; int &reiv;//错误:不能使用指向空值的引用, //所以引用在定义的时候就一定要初始化,不然会报错 int &reiv2=iv; int *pi; *pi=5;//这里也是很严重的一个错误,指针pi并没有一个指向一个实际的指针,5付给pi后不知道放哪里,相当于给空指针赋值,问题很严重 pi=&iv3; const double di;//const常量定义的时候一定要初始化 const double maxWage=10.0; const double minWage=0.5; const double *pc=&maxWage; cout<<pi; system("PAUSE"); return 0; }
2、指针和引用有什么区别:
①非空性:任何情况下都不能使用一个指向空值的引用,也就是说引用在定义的时候就一定要初始化;但是指针则不然,指针可以指向空值
②可修改区别:指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向初始化时制定的对象