1、在函式內申明的變數包括引數在函式執行時存在,函式執行結束自動釋放記憶體
2、在函式外定義的變數或者使用static定義的變數,在程式執行過程中都存在
3、使用new分配的記憶體一直存在,直到delete釋放記憶體為止
1、區域性變數a定義它開始直到return 0;變數i從定義開始知道for語句結束為止;
2、num為全域性變數,在main()和fun()函式都可以使用;
3、p的作用域從它定義開始,直到delete p結束;
int num =9;
void
func()
intmain()
cout<
newint[5
];p[2]=
5;delete
p;return0;
}
儲存持續性 作用域和鏈結性
關於記憶體的知識 c 使用3種 c 11中是4種 不同的方案來儲存資料,這些方案的區別在於資料保留在記憶體中的時間。1.自動變數和棧 自動變數的數目隨函式的開始和結束而增減,因此程式必須在執行時對自動變數進行管理,常用的方法是留出一段記憶體,將其視為棧,以管理動態變數的增減。2.靜態持續變數 和c語...
變數儲存持續性 作用域和鏈結性
靜態持續變數3種鏈結性 外部鏈結性 可在其他檔案中訪問 內部鏈結性 只能在當前檔案中訪問 無鏈結性 只能在當前函式或 中訪問 要想建立鏈結性為外部或內部的靜態持續變數,必須在 塊外面宣告它,要建立沒有鏈結性的靜態持續變數,必須在 塊內宣告它。1.單定義規則 變數只能有一次定義,c 提供了兩種變數宣告...
儲存持續性 作用域和鏈結性之二
除了執行緒儲存持續性,c 使用三種不同的方案來儲存資料,這些方案的區別就在於資料保留在記憶體中的時間。使用c 運算子new 或c函式malloc 分配的記憶體,被成為動態記憶體。動態記憶體由運算子new和delete控制,不是由作用域和鏈結性規則控制。因此,可以在乙個函式中動態分配記憶體,而在另乙個...