按照存儲程式概念, 資料與處理資料的指令(代碼)存儲在記憶體中, 控制器逐條取出指令執行, 並按指令要求訪問指令指定的資料(變數或陣列、鏈表等資料結構)。
為了讓資料和指令可以被訪問, 記憶體被定義為一格一格的記憶體單元, 每個記憶體單元由作業系統定義一個記憶體位址, 位址值與位置之間是線性關係。
由程式語言編寫的程式被編譯後, 程式定義的識別字(變數名、函數名、資料結構名)由作業系統分配記憶體單元, 並對應一個分配的記憶體單元的位址。 由識別字即可以訪問記憶體單元的具體內容(指令或資料)。
定義識別字後,
具體放到何處記憶體單元中,
由OS去決定。
在C語言中,
如果使用者想知道識別字具體分配的位址址,
使用取值運算子"&"即可。
在C語言中, 除了定義識別字來訪問記憶體單元以外, 還可以定義指標來間接訪問記憶體單元, 指標對應一個指標名, 指標名的具體值為一個記憶體單元的位址, 由這個位址可以指向其值對應的記憶體單元, 其關係如下所示:
int var = 8;
int* pt;
pt = &var(值為add2);
有了指標, 多了一種訪問記憶體單元的方式;
有了指標可以臨時申請記憶體單元資源。