變數 指標 引用

2021-05-23 07:04:53 字數 430 閱讀 4365

先看一段程式:

從執行結果可以看出,指標引用都可以指向變數。

指標是自由的,而引用只能初始化一次,之後如果再賦值,就直接修改指向的變數,因此,引用是變數的別名~

我們知道指標在32位機器上是4位元組的一種資料型別。而引用又是占用多少記憶體呢?

我把程式稍作修改,比較來看看:

第一種情況和第二種情況的區別在於。。。定義指標變數和定義引用變數的先後順序,因為在函式中,區域性變數是在堆疊中儲存的,因此分配記憶體是按順序的。我們觀察一下其中的區別:

第一種情況:

第二種情況:

見證奇蹟的時刻:

引用變數確實占用了4位元組的記憶體。想必他和指標的作用是相同的, 只是為了更清晰的表示指向的變數才設定的。

這樣看來,引用是否等於乙個:

int * const rptr=var;

呢!

指標 引用 舉例 通過指標變數訪問整型變數

在了解指標前需要先了解一下什麼是位址?int i 3 取位址運算子 i pointer i 什麼是指標?指標就是存放記憶體位址的變數。乙個變數的位址稱為該變數的指標。作用是什麼?指向乙個已經存在的同型別的變數 指向的意思,就是可以用這個指標代替原始的變數名進行輸出。int i 3 i pointer...

指標作引數,指標變數的引用問題

總感覺只要把指標作為引數,就可以達到我們需要的效果。舉乙個例子,我通過 bool delete bstree p 這個函式來刪除結點 p 注 bstree 是bstnode 指標變數 但是每次都是提示記憶體溢位的問題,弄的好鬱悶,後來仔細想了想,好像想出來了一些東西。先說一下上面說的這個函式,如果我...

引用 變數的別名,並非指標

引用是乙個已經存在的物件的別名。一旦乙個物件初始化了這個引用,那麼名稱和引用都能夠用來引用該物件。int a 12 int ra a ra 是物件a 的乙個別名 ra 此時物件 a 11 a 10 ra 10 int pa ra pa 指標指向物件 a引用經常與指標混淆,可能是c 編譯器常常將引用像...