C++指针与引用类型的最本质的区别在于,指针再做运算的时候是对指针做运算,而引用做运算是它所代表的值做运算,比如在int* px=x;px++;中,指针加一会把指针变量px的值加4(int四个字节),而引用类型int& ref=x;ref++;回直接取x中的值加1。所以有引用类型是变量的别名一说。
总结
- 引用必须赋初始值,且只能指向一个变量,“从一而终”。
- 对引用赋值,是对其指向的变量赋值,而并不是修改引用本身的值。
- 对引用做运算,就是对其指向的变量做运算,而不是对引用本身做运算。
- 引用类型就是一个“弱化了的指针”。
实际上"引用"可以做的任何事情"指针"也都能够做,为什么还要"引用"这东西?
答案是"用适当的工具做恰如其分的工作"。
指针能够毫无约束地操作内存中的任何东西,尽管指针功能强大,但是非常危险。
如果的确只需要借用一下某个对象的"别名",那么就用"引用",而不要用"指针",以免发生意外。