1樓:程式號正茂
給你舉個例子吧,畫家作畫,黑色筆和白色筆用得最多,畫家可以把黑筆和白筆單獨放乙個筆筒裡,而其他顏色的的筆可能用到渣雀也可能用不到,只有到需要的時候才去找,去找筆就要花時間。全域性變數就相當於黑筆和白筆,一直存在於畫家作畫的整個過程中,但找它們不花時間,拿過來就是了。而其他顏色的筆就相當於一般變數,這裡就是引數,用到時才去找,也就是變數用到時才分配記憶體(花時間去找),廳梁伏如果筆太多,花的時間就越扮攜長。
2樓:網友
整個學生宿舍叫「記憶體空間」,每個寢室叫「儲存單元」
3樓:cpp門徒
/ 全域性變數的有效範圍大,為什麼可以減少函式實參與形液團參的個數?例:
int t = 0;
int func1();
int func2();
void main()
main()呼叫func1、func2如果想儲存範圍值,直接儲存在t就可以了,根本就不用傳引數過去,這肯定減少了傳遞資料的消搜埋旦耗空間。
但是全域性變數在程式的全部執行過程都佔用儲存單元?
區域性變數的範圍是多少?
int t = 0;
void main()
if ( 1 )
int g = 0;
g的範圍只存活在if(){中,而t是一直存在,到程式結束,你說是不是全部執行過程都佔用儲存單元?它一直都存在,不就世擾是嗎。
希望能幫到你!!!
c 語言中全域性變數、區域性變數、函式引數個是在什麼時候分配記憶體空間
4樓:業慶母恬暢
全域性變數是使用相同的記憶體塊在整個類中儲存乙個值。
1,使用全域性變數會佔用更多的記憶體(因為其生命期長),不過在計算機配置很高的今天,這個不成為什麼問題,除非使用的是巨大物件的全域性變數,能避免就一定要避免。
2,使用全域性變數程式執行時速度更快一些(因為記憶體不需要再分配),同樣現在也快不了多少。
3,對於區域性變數的名字空間汙染,這個在不使用太多變數時是可以避免的。
總之,全域性變數可以使用,但是全域性變數使用時應注意的是儘可能使期名字易於理解,而且不能太短,避免名字空間的汙染;避免使用巨大物件的全域性變數。
區域性變數:在程式中,只在特定的過程或函式中可以訪問的變數,是相對與全域性變數而言的。
全域性變數也稱為外部變數,是在函式的外部定義的,它的作用域為從變數定義處開始,到本程式檔案的末尾。全域性變數全部存放在靜態儲存區,在程式開始執行時給全域性變數分配儲存區,程式行完畢就釋放。
區域性變數可以和全域性變數重名,但是區域性變數會遮蔽全域性變數。在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。
5樓:網友
全域性變數是在main函式之前就分配。
區域性變數在定義時分配,超出作用域後釋放。
靜態區域性變數只分配一次,程式退出後才釋放。
函式引數與區域性變數基本上相同在進入函式時分配,函式結束時釋放。
6樓:科郡
主要是看變數屬於什麼儲存型別,全域性變數、靜態變數儲存於靜態記憶體,區域性變數和函式的形參儲存於堆疊中,不儲存於堆疊中的變數在可執行程式載入記憶體時便分配儲存空間,即在程式執行之前,堆疊中的變數會在定義變數時分配記憶體空間。
7樓:網友
全域性變數是在一開始分配記憶體。
區域性變數在使用時分配,使用完畢釋放 一般是使用的函式被呼叫的時候靜態區域性變數只分配一次,且不會釋放。
函式引數在使用時分配,使用完畢釋放。
區域性變數分配的時候,有沒有可能會佔用全域性變數的空間?
8樓:網友
不會的,區域性變數的空間是叢巧在區域性**執行時分配的空間,而全域性變數是在程式一開始就分團胡配的空間,全域性變數的儲存空間滲或鍵是在全域性區,而區域性變數是在堆疊區,他們的空間不重疊。放心好了。
9樓:匿名使用者
不可能的,你的驗證**有問題。
c程式執行時乙個函式佔多少記憶體空間,高手詳解一下
10樓:網友
函式佔用記憶體要看函式里是什麼了,比如int a[1024],那就是4kb記憶體。
11樓:網友
乙個函式有乙個最大的記憶體空間限制。
大概是int的10000
記憶體空間和程式本身定義的變數有關。
帶遞迴的程式記憶體空間是。
本身定義的變數*遞迴層數。
12樓:網友
這取決於這個函式中定義了多少變數以及變數的型別。
13樓:幸福丶小丑
很難說了。。。時情況而定,你寫的程式現在什麼級別?
14樓:網友
不一定,要看情況!具體自己查吧。
15樓:網友
這個取決於你定義的全域性變數的多少和型別。
c語言關於變數所佔記憶體單元
16樓:曾相林
這個題目選擇a,我現在給你解釋一下這用這幾個關鍵字修飾的變數的意思,auto:強調變數的生存期為自動,也就是說不在任何結構外面申明的變數就是全域性變數,在函式體裡面申明的變數就不是乙個全域性變數(在沒有特別指明的地方);
register:這個說明的意思是說盡量把變數存放在cpu內部的暫存器當中,儘量不要存放在貯存中;
static:這個應該不用說吧;
還有乙個extern:這個的意思是說這個變數是來及外部的,可能並不存在於這個檔案當中,但是肯定在這個工程的某個標頭檔案或者某個dll檔案當中。
好了 上面的分析應該夠了,只有auto能夠可能是乙個區域性的變數 所以答案就是a
17樓:網友
選a,因為它是動態變數,而動態變數是隻有當呼叫改函式時才給它非配記憶體單元,而呼叫完就釋放了。
我也是在網上找到的。
不知道是不是對的啊。
標頭檔案裡定義變數會預先佔用記憶體空間?
18樓:網友
會佔用空間。
標頭檔案一般是要反覆使用的,比如你的程式有多個。c檔案組成,每個。c檔案都可以包含標頭檔案,如果標頭檔案中定義變數,在多次編譯標頭檔案時,編譯程式就會重複申請相同名稱的變數,導致錯誤,所以不建議在標頭檔案中定義變數。
標頭檔案一般定義的是函式呼叫規則以及常量、巨集定義這些不怕重複編譯的說明性內容。
手機的運存要佔用記憶體空間嗎??
首先手機記憶體有兩種,一種是ram也就是執行記憶體,一種是rom也就是儲存記憶體,一般手機的引數都會寫成g g手機記憶體g不含執行記憶體的g的,執行記憶體是固化在手機內部的,所以說 不佔用。不用 手機執行記憶體 是自帶的 不可改變。運存記憶體?這個怎麼說呢 應該說是ram和rom rom是你手機關機後資料不丟失的 ...
電視記憶體怎麼清理,電視記憶體空間不足怎麼辦?如何清理垃圾檔案?
智慧電視一般都是通過金山衛士來清理記憶體,如果用金山衛士清理也只能清理幾十mb的話,建議採取恢復出廠設定來達到清理記憶體的目的。具體的操作步驟如下 開啟電視機,按遙控器的 選單鍵 找到 系統設定 選擇並按 確認 鍵進入 2.進入後的頁面上會出現 系統還原 這個選項,選擇並按 確認 鍵進入 3.開啟系...
電腦記憶體不足 如何釋放記憶體空間,怎樣釋放電腦記憶體
建議用360安全衛士全面體檢修復,然後再用它的優化加速裡的啟動項,禁止一些軟體開機啟動,這樣處理後就可以正常。這樣的軟體有很多,超級兔子,優化大師,記憶體等,去下一個來用就行了。犧牲win7系統特效,換取速度最佳效能 1 win7系統主題 windows7預設的aero主題是很耗費記憶體的,在從登入...