形參、區域性(非靜態)變數和靜態區域性變數的差別
阿新 • • 發佈:2019-02-11
1、形參和區域性(非靜態)變數屬於自動變數,在定義它們的塊語句結束時撤銷。特別地,形參所佔有的儲存空間在呼叫函式時建立,在函式結束後撤銷。
2、預設情況下,區域性變數的生命期侷限於所在函式的每次執行期間。
3、靜態區域性變數的生命期跨越了該函式的多次呼叫,這種物件一旦被建立,在程式結束前都不會被撤銷。
測試例子程式碼如下:執行結果圖如下:
int count_calls_static() { static int ctr = 0; return ctr; } int count_calls() { int ctr = 0; return ctr; } int main() { cout<<"using static various"<<endl; for(int i =0; i != 10; i++) { cout<<count_call_static()<<endl; } cout<<"without using static various"<<endl; for(int i =0; i != 10; i++) { cout<<count_call()<<endl; } return 0; }