從概念上講。指針從本質(zhì)上講就是存放變量地址的一個(gè)變量,在邏輯上是獨(dú)立的,它可以被改變,包括其所指向的地址的改變和其指向的地址中所存放的數(shù)據(jù)的改變。
而引用是一個(gè)別名,它在邏輯上不是獨(dú)立的,它的存在具有依附性,所以引用必須在一開始就被初始化,而且其引用的對象在其整個(gè)生命周期中是不能被改變的(自始至終只能依附于同一個(gè)變量)。
相同點(diǎn):
都是地址的概念:
指針指向一塊內(nèi)存,它的內(nèi)容是所指內(nèi)存的地址;而引用則是某塊內(nèi)存的別名。
不同點(diǎn):
1. 指針是一個(gè)實(shí)體,而引用僅是個(gè)別名;
2. 引用只能在定義時(shí)被初始化一次,之后不可變;指針可變;引用“從一而終”,指針可以“見異思遷”;
3. 引用沒有const,指針有const,const的指針不可變;
4. 引用不能為空,指針可以為空;
5. “sizeof 引用”得到的是所指向的變量(對象)的大小,而“sizeof 指針”得到的是指針本身的大??;
6. 指針和引用的自增(++)運(yùn)算意義不一樣;
7. 引用是類型安全的,而指針不是 (引用比指針多了類型檢查) 。
更多關(guān)于“物聯(lián)網(wǎng)培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來試聽。