C 中的引用與指標的區別

2021-10-16 03:35:13 字數 511 閱讀 8987

都是位址的概念;

指標指向一塊記憶體,它的內容是所指記憶體的位址;

引用是某塊記憶體的別名。

指標是乙個實體,而引用僅是個別名;

引用使用時無需解引用(*),指標需要解引用;

引用只能在定義時被初始化一次,之後不可變;指標可變;引用「從一而終」 ;

引用沒有 const,指標有 const,const 的指標不可變;

引用不能為空,指標可以為空;

「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身(所指向的變數或物件的位址)的大小;

typeid(t) == typeid(t&) 恒為真,sizeof(t) == sizeof(t&) 恒為真,但是當引用作為成員時,其占用空間與指標相同(沒找到標準的規定)。

指標和引用的自增(++)運算意義不一樣;

引用在語言內部用指標實現(如何實現?)。

對一般應用而言,把引用理解為指標,不會犯嚴重語義錯誤。引用是操作受限了的指標(僅容許取內容操作)。

C 中引用與指標的區別

1 從現象上看 指標在執行時可以改變其所指向的值,而引用一旦和某個物件繫結後就不再改變。2 從記憶體分配上看 程式為指標變數分配記憶體區域,而引用不分配記憶體區域。3 從編譯上看 程式在編譯時分別將指標和引用新增到符號表上,符號表上記錄的是變數名及變數所對應位址。指標變數在符號表上對應的位址值為指標...

C 中引用與指標的區別

指標和引用都是 c 中的基本語法成份,它們既有聯絡,也有不同之處。下面給出幾段 例項加以說明 include include using namespace std 使用指標交換資料 使用引用改變資料 引用作為函式引數進行傳遞時,實質上傳遞的是實參本身,即傳遞進來的不是實參的乙個拷貝,因此對 形參的...

C 中引用與指標的區別

一 引用 何為引用呢?其實概念很簡單,就是乙個變數的別名,操作這個別名,如同操作原物件 變數 實現的效果是一樣的!舉個簡單又能說明問題的例子,就像乙個人的 小名一樣。他既可以叫張強,亦可以稱呼其小強。那如何宣告引用呢?舉個例子 int a 30 int b a 這個符號在這裡的意思就是取乙個變數引用...