共同點
1、static和const在編譯時直接分配記憶體區別
1、(本質)static是型別引用,const是例項引用。
2、(初始化)靜態變數的初始值必須是乙個常量。靜態初始值預設為0,而常量也預設為0(嗎?)。
3、(賦值)靜態變數的值在執行時可以更改賦值,而常量的值是不可改變的,執行一開始已經固定,之後修改會報錯。
4、(記憶體)靜態變數存放在全域性資料區中,伴隨著這個程式流程,能將此變數的值保留到下次呼叫,不過資料過大的靜態變數有可能造成記憶體洩露。 而const常量算是乙個普通的唯讀變數,隨函式結束而結束。在c裡,const常量總是會分配記憶體,位於唯讀資料段。在c++,如果const常量在沒有宣告為extern,那麼就是乙個編譯時的符號,不占用記憶體。
變數,常量,靜態變數儲存的位置
常見的儲存區域可分為 1 棧由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。2 堆由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new就要對應乙個delete。如果程式設計師沒有釋放掉,程式會一直占用記憶體,導...
靜態變數和常量的區別
共同點 1 static和const在編譯時直接分配記憶體。區別 1 本質 static是型別引用,const是例項引用。2 初始化 靜態變數的初始值必須是乙個常量。靜態初始值預設為0,而常量也預設為0 嗎?3 賦值 靜態變數的值在執行時可以更改賦值,而常量的值是不可改變的,執行一開始已經固定,之後...
靜態變數與動態變數
1 靜態儲存變數通常是在變數定義時就分定儲存單元並一直保持不變,直至整個程式結束。靜態變數,全域性動態變數都是靜態儲存 2 動態儲存變數是在程式執行過程中,使用它時才分配儲存單元,使用完畢立即釋放 3 靜態儲存變數是一直存在的,而動態儲存變數則時而存在時而消失。通常把由於變數儲存方式不同而產生的特性...