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