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