和int a兩個變數佔用的記憶體一樣大嗎?處理效率哪個更高

2022-02-05 23:29:07 字數 1432 閱讀 3115

1樓:

從資料結構來看,兩個變數佔用的記憶體一樣大,都是4byte(有些編譯器是2byte,即16位)。int陣列只是連續的int資料結構,與單個int結構的儲存沒有區別。

處理效率:

陣列元素的定址是首先找到陣列a的位址(也是陣列首元素的位址),再根據陣列下標對各元素定址。而單個變數定址是直接找到該變數位址,即&a。所以從使用上來看,單元素陣列和單個變數的效率一致,都只需要定址一次。

如果是傳參,那顯然傳遞位址的效率會比記憶體拷貝更高。所以傳參時,a[1]的效率比a更高。

2樓:合詩柳

如果只是乙個數的話,沒必要用陣列

3樓:匿名使用者

不同的編譯系統為int變數開闢的記憶體單元大小不同,vc6.0為int變數開闢4個位元組(32個二進位制位)的記憶體單元,並按整形數的儲存方式存放資料,允許的數值範圍是-2147483648~2147483647。我不知你的是什麼編譯系統,那麼若有int a;變數a佔用記憶體的2個位元組,則a的數值範圍為-32768~32767,應選c:

-32768 。

祝你早日成為vc高手啊~~!

c++中,引用&變數是不分配記憶體空間嗎?那麼定義乙個引用變數,如int& a

4樓:搗蒜大師

對啊 就是你說的那樣。現在引用就是個指標,非說一點不佔記憶體那是不可能的。

5樓:匿名使用者

引用只是編譯過程的乙個概念

由編譯器決定

產生的機器碼中,有些需要佔記憶體,有些則不需要在不同情形下,各有不同

6樓:鬱草小沙彌

沒有分配。我覺得你產生誤解的原因是你誤解了宣告乙個引用變數的方式。int& a;這種寫法是不對的,屬於語法錯誤,宣告乙個引用變數是要給它初始值的,這就是引用變數特殊的地方:

int i; int& a = i; 這樣才對,也就是說,必須現有乙個普通變數i,才能宣告乙個引用變數a來指向i,a本身只相當於乙個標識,與變數名i沒區別。你可以理解為乙個變數有了兩個名字。

7樓:

指標資訊是佔用記憶體的,這部分記憶體是系統自動分配的,不需要你來操心它被放在**。通常我們說分配記憶體空間,是給你的變數內容使用的。你的變數可能是一串字元,一段文字,乙個數值。

這些是真正需要你分配空間的地方。

就像賓館一樣,來了客人,開了房,就等於分配空間了。當然登記簿上是記了一筆,但是這個登記簿是由賓館來管理的。按照什麼格式,記了什麼東西是賓館管理方自己規定的。

你住進房間了,人家給你登記為某先生。一開始別人來找你都問某先上在嗎?後來住長了服務員都知道你是某公司某總。

那麼從他們從客人備註裡就寫上了這個資訊。今後一提某公司某總,就知道是你了。這就是引用。

並沒給你新開房,就是給你加一別名,往本子裡記一筆而已。房間並沒有變動。

vb中交換兩個變數的值,VB 將ab兩個變數的值互換

dim a as integer,b as integera 1 b 2 a a b b a b a a b debug.print a,b imports system module tester sub main dim a,b as integer a 1 b 2 swap1 a,b cons...

兩個記憶體條可以一起用嗎兩個不同牌子的記憶體條能一起使用嗎

一條4g一條8g兩條記憶體能不 能用在一台電腦上,這首先看這兩條記憶體單條插到主機板上看能不能開機使用,開不了機,單條都不行,兩條同時上上那當然是更不行了。其次看兩條記憶體總容量是不是在主機板支援範圍之內,在範圍之內,可以一阿上上。滿足上邊說的兩個條件的記憶體,要把頻率低容量小的插在靠近cpu的第乙...

定義函式swap,功能為交換兩個變數a和b的值,在主函式中輸入數,呼叫該函式,輸出交換後的資料

include void swap int a,int b int main swap操作實現交換兩個容器內所有元素的功能。要交換的容器的型別必須匹配 必須是相同型別的容器,而且所儲存的元素型別也必須相同。呼叫了swap函式後,右運算元原來儲存的元素被存放在左運算元中,反之亦然。void swap ...