这个问题经常在面试中被询问,这里谈一下我的理解;先谈区别。
1.关于定义;引用在定义的时候被赋值,而指针却大可不必。
2.很多书(人)说引用是变量的别名,那么引用到底有没有内存空间?答案是肯定的;引用也是有内存的,实际上可以理解成和指针一样;其指向实际存在的内容空间。但引用和指针的区别应该是编译阶段确定的。
3.指针赋值的时候需要加*,而引用不需要,和普通变量在表达式上没有区别。
4.关于引用是在C++里面引入的,指针却在C/C++里面都有
再谈相似的地方:
1.不管引用还是指针都是间接的引用,在做参数传递的时候也都只需要将地址传递,而不是值传递。
2.引用和指针都可以实现C++的多态;这也是C++多态的基础。
貌似就这些了,如果忘记了大家帮忙补!