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