1. 程式人生 > >形參、區域性(非靜態)變數和靜態區域性變數的差別

形參、區域性(非靜態)變數和靜態區域性變數的差別

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;
}