1樓:匿名使用者
比如我有乙個全域性復
變數a,兩個窗制口m,n,在視窗m裡有乙個區域性變數b,n視窗有乙個區域性變數c,如果我要設定a的值,不論是在哪個視窗都可以直接呼叫 a=123這個命令來設定,但是如果我要設定b的值,那我只能通過 m.b=123 來設定
至於全域性變數和區域性變數有什麼區別,一般全域性變數是用來在各個視窗程式集裡進行通訊用的,區域性變數一般就只是在本視窗程式集裡呼叫
當然,區域性變數會隨著某個擁有它的程式集或子程式的銷毀或結束而釋放,也就是說如果我把視窗m從記憶體中移除,那麼m中的變數b就不存在了,而全域性變數則是在整個程式結束退出後才釋放記憶體
2樓:匿名使用者
區域性變數就是執行某乙個事件的時候所用到的變數(如被單機) 而其他事件呼叫不到這個區域性變數
全域性變數就是所有事件都能用到這個變數
全域性變數和區域性變數有什麼區別?是怎麼實現的?
3樓:匿名使用者
1、 全域性變數的作用用這個程式塊,而區域性變數作用於當前函式;
2、前者在記憶體中分配在全域性資料區,後者分配在棧區;
3、 生命週期不同:全域性變數隨主程式建立和建立,隨主程式銷毀而銷毀,區域性變數在區域性函式內部,甚至區域性迴圈體等內部存在,退出就不存在;
4、 使用方式不同:通過宣告後全域性變數程式的各個部分都可以用到,區域性變數只能在區域性使用
作業系統和編譯器通過記憶體分配的位置來知道的全域性變數分配在全域性資料段,並且在程式被執行的時候就被載入。;
編譯器通過語法詞法的分析,判斷出是全域性變數還是區域性變數。如果是全域性變數的話,編譯器在將源**翻譯成二進位制**時就為全域性變數分配好乙個虛擬位址 (windows下0x00400000以上的位址,也就是所說的全域性區),所以程式在對全域性變數的操作時是對乙個硬編碼的位址操做。
區域性變數的話,編譯時不分配空間,而是以相對於ebp或esp的偏移來表示區域性變數的位址,所以區域性變數記憶體是在區域性變數所在的函式被呼叫時才真正分配。 以彙編的角度來看:函式執行時,區域性變數在棧中分配,函式呼叫完畢釋放區域性變數對應的記憶體,另外區域性變數可以直接分配在暫存器中。
作業系統通過變數的分配位址就可以判斷出是區域性變數和全域性變數。
全域性變數和區域性變數的區別,全域性變數 靜態全域性變數 靜態區域性變數和區域性變數的區別
一 用途不同 全域性變數 描述物件有什麼 在類中定義 類中所有方法都可以使用。區域性變數 臨時儲存資料 在類的方法中定義 只能在當前方法中使用。二 使用不同 全域性變數 整個類中可用 區域性變數 該方法內可用 三 初始值不同 全域性變數 有初始值 區域性變數 無初始值 擴充套件資料 使用全域性變數會...
JS區域性變數傳值給全域性變數,JS區域性變數傳值給全域性變數
不是空,是非同步啦,你同步就可以了啊,ajax可以設定的啊 可以抄參考看看吧 js 區域性變數傳值給全域性變數 200 在區域性使用 window.全域性變數名 值 直接更改和使用全域性變數 js中怎樣將區域性變數的值傳遞給全域性變數 直接將區域性變數的值賦給全域性變臉就行了 注意,全域性變數得先定...
全域性變數 與 static型的區域性變數 有什麼區別
extern變數和static變數都是從靜態儲存區域分配記憶體,即他們的儲存方式都一樣 從靜態儲存區域分配記憶體的特點是,內存在程式編譯時就已經分配好,這塊內存在程式執行期間都存在,這也就導致了全域性變數和static變數的生命期存在於整個程式執行中 即程式開始執行到程式結束 static變數分為兩...