這個問題經常在面試中被詢問,這里談一下我的理解;先談區別。
1.關于定義;引用在定義的時候被賦值,而指針卻大可不必。
2.很多書(人)說引用是變量的別名,那么引用到底有沒有內存空間?答案是肯定的;引用也是有內存的,實際上可以理解成和指針一樣;其指向實際存在的內容空間。但引用和指針的區別應該是編譯階段確定的。
3.指針賦值的時候需要加*,而引用不需要,和普通變量在表達式上沒有區別。
4.關于引用是在C++里面引入的,指針卻在C/C++里面都有
再談相似的地方:
1.不管引用還是指針都是間接的引用,在做參數傳遞的時候也都只需要將地址傳遞,而不是值傳遞。
2.引用和指針都可以實現C++的多態;這也是C++多態的基礎。
貌似就這些了,如果忘記了大家幫忙補!