引用是个别名,在内存中没有地址,也不占用空间,引用一旦初始化就不能修改,所以也就没有能指向它的指针
(也就是说引用是常量指针,他指向的地址已固定,且此地址存储的内容也已固定,不能再用此引用指针指向其他地址。)
而指针呢?大家都知道指针的精髓是间接性(直接性就是直接用变量名进行操作),通过指针访问间接的。
比如:int i = 20;是i占内存 还i的内容20占内存,这样就清楚了吧,i是个名字。
(有位网友的解释:引用其实是指向某个东西,所以从这点意义上讲是"指针",但是他绝对不是单独存在的,他一定是指示某个已经存在的东西的,他一定是某个已经存在的物体的"别名".
而且它如果被初始化赋值成某个变量后,他就始终是这个变量的替身.对引用的改变就是对这个变量的改变.
从这点来看,引用比较虚无,所以无法定义指向引用的指针,虽然,编译器的内部实现里面,也许是用指针来包装引用的,因为一定是要用地址来传递参数或者进行其他操作的.
引用还有很多用处.大家可自行参考effective c++,尤其是more effective c++的第二篇"指针和引用",zhx大虾翻译的中文,在这里的文档区可以找到. )