1. 程式人生 > >全域性變數,區域性變數,靜態變數和例項變數的區別

全域性變數,區域性變數,靜態變數和例項變數的區別

       全域性變數是一個執行時刻實體,他在程式的整個執行過程都存在。全域性變數佔用的儲存時刻的使命週期從程式的開始到結束,全域性變數初始化時或者未初始化時,在程式映像中有不同的分割槽,已初始化的n全域性變數是可執行的一部分。未初始化的全域性變數是不可初始化的一部分,只有定義他們的程式被呼叫時(執行),才分配空間,宣告或定義時並不分配。未初始化的全域性變數在執行時初始化為0。

        區域性變數也叫自動變數,他宣告在函式塊內,作用範圍在函式塊內,不能同源檔案中的其他檔案使用,區域性變數儲存在棧中。無論區域性變數使用初始化,或者未初始化,都只有被呼叫他們的程式塊呼叫時,才分配空間,宣告或定義時並不分配。區域性變數是不可執行模組的一部分,除非區域性變數的值進行初始化,否則他們的初始值是不確定的。

        全域性變數沒有宣告在任何一個函式內,作用範圍在程式執行時始終存在,能被同一原始檔的任何函式呼叫,也能被其他檔案中的函式呼叫,但是使用extern關鍵字。方法執行完後隨之也銷燬。

        全域性變數儲存在資料段內。

        靜態變數是為了限制全域性變數的作用域,又叫內部變數。