用變數名會佔記憶體空間嗎,變數名佔不佔記憶體?比如int a 12,這個a有沒有佔記憶體?

時間 2022-02-03 10:30:13

1樓:小童鞋_成

您好,提問者:

這兩個有沒有區別,乙個匿名物件,乙個定義了名稱。

因為他們的範圍都是在這個{}中,所以jvm執行完會不定時**的。

//我們可以測試一下

public class test}

2樓:祥

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

變數名:是乙個識別符號(identifier),用來指代一塊記憶體區域,即變數,使用變數使我們操作記憶體以區域(area),以塊(block)為單位,提高了方便性。

你的機器**中,是不會出現變數名的;變數名是給我們程式設計師操作記憶體來使用的。

想想在彙編年代,沒有變數名,我們操作記憶體,都是用位址來直接操作的,還要控制區域大小;當然組合語言已經有了簡單的變數。

對於編譯器,它會蒐集我們的變數名,比如我們定義了乙個全域性的int a;那麼編譯器都為我們做了什麼呢?

它會為程式預留4個位元組的空間(假設在32位平台),並把我們的變數名「a」儲存進符號表,並用這個符號表的索引對應實際的空間。

如果下面出現b = a;那麼它就會根據符號表找到變數的真正的物理位置,取得它的值,賦給b。

這是寫編譯器需要做的,我們需要建立符號表。

但是實際在彙編層次上,操作的都是位址而已,不存在任何名稱了。

希望對你有用。

變數名佔不佔記憶體?比如int a=12,這個a有沒有佔記憶體?

3樓:飛向天空

編譯出來的程式和變數叫什麼名字關係不大,最後都被翻譯為乙個位址,但是肯定要占用記憶體,因為要存放這個位址。而且這個位址存放在程式區,12存放在資料區。

4樓:絕殺狂龍

這個,動態變數在宣告的時候不占用,但是你這個在宣告的同時進行賦值。這裡就會占用記憶體了

5樓:匿名使用者

這個嘛,你宣告的時候他是不佔記憶體的,如 int a;這是不佔記憶體的,但是當你給變數賦值之後,這個變數就要佔記憶體了,如int a=10;這個變數就佔記憶體了?明白??

6樓:匿名使用者

占得 在記憶體中 執行這個c語言程式之後會在記憶體中佔2個位元組 16位

7樓:水月無止

變數名實際上是以乙個名字代表的乙個儲存位址。在對程式編譯連線時由編譯系統分配給每乙個變數名對應的記憶體位址

8樓:

佔,12就放在它占用的連續4個單元裡。

9樓:匿名使用者

變數只有賦值時才被分配儲存空間。

這個儲存空間 不一定在記憶體,可以在暫存器內。

例如:c語言

int i,j

i=9程式執行到第二個語句時才被分配空間。

當變數生存期結束時,自動被釋放空間。

靜態變數 生存期 是整個main。

10樓:r7世

不佔,這個a是給編譯器看的,用int a還是int aaaaaa對編出來的程式沒影響

11樓:匿名使用者

占得。等你學了後面的 指標 會有更深的感觸

12樓:養了兩隻仔

有呀 只要是為變數定義了 他就有了記憶體

13樓:

變數名當然不佔記憶體啦。。。

c語言中,常量佔記憶體空間嗎?請高手指教

14樓:

常量是乙個命名的資料項,在整個操作過程中其值保持不變。如pi值,即3.1415926535是數值型常量。 vfp定義了如下型別的常量:

數值型常量,如:20,16,100,1

字元型常量,用單引號或雙引號括起來的字串,如:"abcd"

邏輯型常量,只有兩種:.t.和.f.

日期型常量和日期時間型常量,如:,

關鍵的是,常量和變數是放在不同的"段"(section)裡,程式一旦載入,常量/變數自然都在記憶體裡了。

常量和全程變數,通常放在初始化段;區域性變數,通常在棧裡;

還有一種情況,比如彙編裡的立即數(mov ax, 12),它是直接放在指令裡的,也即是**段裡.

由上面,我們可以知道,常量是在程式載入的時候,一起載入到記憶體中去的,這個時候是要占用記憶體資源的。。。

15樓:沒話

是要佔的,就像你平常定義變數,如果不賦值為0,輸出的不一定是0一樣;是佔的...

(ps:我們老師說的)

16樓:

常量分幾種情況:1、用#define定義的巨集,此時其實它是立即數,在編譯的時候,會直接寫入程式不會佔空間

2、用定義乙個變數儲存了乙個常數(其實這時候是乙個變數了,要佔ram空間的);

3、定義在rom中,如「__rom"來宣告,這時候就佔rom,而不是ram,我們所說的記憶體指ram,所以不佔記憶體。

c語言中,常量到底佔不佔記憶體空間?

17樓:小溪閒談影視劇

變數使用前必須先進行定義。在記憶體中分配一塊儲存空間給變數,以便以後儲存資料。如果定義了多個變數則為多個變數分別分配不同的儲存空間。

不同型別的變數占用不同大小的儲存空間,因為記憶體極其有限,分配適當的儲存空間可以以最少的空間來儲存它們,以節省空間。

18樓:

整形常量和字元型常量不占用記憶體空間,其他占用。另外const定義的那種不是真正意義上的常量,要占用記憶體空間。

解釋的話,看一下我的這個回答:

19樓:匿名使用者

1、常量當然也要佔記憶體,不然程式執行時從哪取的常量?

2、只是常量和變數的在記憶體中儲存的位置是不一樣,常量和程式**段儲存在一起,變數則另開闢一塊儲存空間。

c 中變數地址存放在變數名中,那變數名的地址在哪呢

這不是一言兩語可以說清的。你需要理解cpu指令 彙編 windows作業系統與c 編譯器的運作原理。對於int n 5 首先要說明n的地址更有可能是0x00410fc0,靠近頂端地址是存放核心資料的 編譯器編譯它時,產生類似mov 0x00410fc0 5的指令,其中並沒有出現n,n只是編譯時供編譯...

Visual Basic的變數名是什麼

在程式執行期間其值可以改變的量叫變數。在visual besic中一個變數名的長度最長不超過40個字元,可以由字母 數字 漢字和下劃線組成,但變數的第一個字母必須是字母或漢字 在visual basic語言中,變數名不區分大小寫。如abc abc abc都認為是一個相同的變數名 國醉易赫靜 dima...

VB的變數名的是

使用變數和常量 變數是計算機記憶體中已命名的儲存位置,其中包含了數字或字串等資料。變數包含的資訊被稱為變數的值。變數使用使用者便於理解指令碼操作的名稱為使用者提供了一種儲存 檢索和運算元據的途徑。宣告和命名變數 命名和宣告變數應遵循指令碼語言的規則及指導。即使在使用變數前不需要去宣告變數,也應養成在...