指標表示記憶體位址,變數存放在記憶體中分配的乙個空間,不同型別的變數所佔空間不同,計算機中每個位元組對應乙個位址,變數的位址指它所占用的位元組中第乙個位元組的位址。在變數前加取位址運算子&,就表示變數的位址。指標實際上是乙個unsigned型別整數。
指標變數存放的是指標(廢話),或者說位址。指標變數定義時通過在資料型別後加「*」表示這是指標變數。
資料型別* 變數名;
定義時亦可以進行初始化,其方式是取變數位址,賦給對應型別的指標變數。
在指標變數前加「*」即可獲得指標變數存放的位址所指的元素。
對指標變數來說,其儲存的位址型別稱為基型別,基型別必須和指標變數儲存的位址型別相同。
c語言中,陣列名稱也作為陣列的首位址使用,即對int型陣列a來說有 a == &a[0]。
指標變數可以進行加減法,並且是以資料型別為單位的。例如a+i是指數組的首位址偏移i個int型變數的位置,即 a+i == &a[i]。
而兩個指標變數作減法,得到的是兩個位址間以資料型別為單位的距離。
眾所周知,函式引數是區域性變數,實參進行值傳遞,對其操作不會影響外部變數,為了修改傳入引數,我們可以使用c++中的引用,引用不產生副本,而是給原變數起了別名,對引用變數的操作就是對原變數的操作。
使用引用只需在函式的引數型別後加&即可:
返回型別 函式名稱(引數型別 &引數)
另外,引用是產生變數的別名,常量不可使用引用。 溫習C C 筆記 2 指標和引用的區別
首先看一段 以及執行結果,我將結合該段 講解指標和引用的兩點區別 main.cpp testc 02 created by fei dou on 12 7 29.include include using namespace std int main int argc,const char argv...
C C 指標001 指標與陣列的區別
指標和陣列咋看起來很像,但其定義方式 資料提取方式不一致 主要區別 1 指標儲存的是資料的指標,而陣列直接儲存資料 2 指標需要間接訪問資料,先取得指標的內容,把它作為位址,然後由這個位址去提取資料 而資料像a i 則可以以a i為位址取得資料 3 指標通常用於動態資料結構,而陣列通常用於儲存固定數...
演算法之美 2 1指標
演算法之美 第二章2.1主要講述了指標的使用,感覺很有用,把經常容易弄錯的知識點都舉出來了。特別對函式引數的三種傳遞方式進行了闡述,對指標和引用的三點區別 p34 指標和引用的區別 1.引用必須指向某個物件,指標可以為空 2.使用引用之前不需要測試它的合法性,指標總是被測試,防止為空 3.指標可以被...