變數名和位址之間的關係

2021-07-03 09:32:11 字數 515 閱讀 2274

今天忽然意識到乙個問題,當我們定義乙個變數的時候,如何通過變數名讀取變數裡內容呢? 變數名是否是乙個位址呢?

c語言裡,記憶體的劃分?

在c/c++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。

棧:就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。

堆:就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new就要對應乙個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**。

自由儲存區:就是那些由malloc等分配的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。

全域性儲存區(靜態儲存區):全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。程式結束後有系統釋放。

常量儲存區:這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改。

C語言變數名和位址的關係?

變數 用來標識 identify 一塊記憶體區域,這塊區域的值一般是可以更改的,這就是它 變 的由來 但是我們可以通過使用如const等一些修飾符號來限定這一記憶體區域的操作特性。用const修飾的使變數不能更改的就和常量一樣的變數叫做常變數。變數名 是乙個識別符號 identifier 用來指代一...

C語言變數名和位址的關係(一)

變數名不佔空間 變數 用來標識 identify 一塊記憶體區域,這塊區域的值一般是可以更改的,這就是它 變 的由來,但是我們可以通過使用如const等一些修飾符號來限定這一記憶體區域的操作特性 characteristic 即變數的操作特性。用const修飾的使變數不能更改的就和常量一樣的變數叫做...

C C 中 變數 變數名 位址之間的關係

變數 用來標識一塊記憶體區域,即變數就是一塊記憶體區域,而這個區域裡面的值可以更改,故叫做 變 量 變數名 是乙個識別符號,用來指代一塊記憶體區域,即變數,變數名並不占用記憶體空間,使用變數名讓我們操作記憶體以區域 以塊為單位,提高了方便性 例項說明 編譯 變數名是給編譯器看的,編譯器根據變數是區域...