c中的儲存型別分為兩種,一種是靜態(static),另一種是自動(automatic)。注意**是不存在儲存型別的問題,它們恆存在於靜態記憶體中。這裡所談的儲存型別,都是針對變數而言。
將期望值放在可執行程式檔案中對應的部分,然後將此檔案裝入記憶體。當程式執行時,這些對應的區域中已經存好期望的值了。
在**塊執行時建立變數,結束後銷毀。儲存位置於執行時棧。
在不同環境下具有不同的含義:
關於第二點,我們**演示一下:
#include
#include
void foo()
int main()
return exit_success;
}
結果會輸出為「1 2 3 4 5」,也就是說,這個變數num被復用了,沒有多次初始化或多次銷毀。當foo執行完成時,此變數依舊存在且保留上次執行後的效果。如果刪除static關鍵字,那麼結果會輸出5個0,此時的num也就成為了乙個普通的區域性變數,儲存位置也改為了棧,變數會隨foo多次的呼叫與結束進行多次的初始化和銷毀。 static關鍵字和const關鍵字的作用
static關鍵字至少有下列n個作用 1 函式體內static變數的作用範圍為該函式體,不同於auto變數,該變數的記憶體只被分配一次,因此其值在下次呼叫時仍維持上次的值 2 在模組內的static全域性變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問 3 在模組內的static函式只可被這...
static關鍵字和final關鍵字
static記住幾點 1.優先順序高,載入優先物件例項化 2.在記憶體中只分配一次 3.屬於類本身,所有例項共享,一處變,處處變 4.1 static不能訪問沒有static修飾的方法 因為不認識,物件例項後才能在外部使用方法 2 可以訪問static塊 3 未加static的方法可以訪問stati...
final關鍵字 和 static關鍵字
一.final關鍵字的作用 1.使用 final 方法的原因 第乙個原因是把方法鎖定,以防任何繼承類修改它的含義 第二個原因是final修飾的方法效率快。2.final final用於修飾類 成員變數和成員方法。final修飾類,類不能被繼承 final修飾成員方法,方法不能被重寫,但是子類可以用父...