<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-144  評論-80  文章-1  trackbacks-0
    在局部變量前加上“static”關鍵字,就成了靜態局部變量。靜態局部變量存放在內存的全局數據區。函數結束時,靜態局部變量不會消失,每次該函數調用 時,也不會為其重新分配空間。它始終駐留在全局數據區,直到程序運行結束。靜態局部變量的初始化與全局變量類似.如果不為其顯式初始化,則C++自動為其 初始化為0。
    靜態局部變量與全局變量共享全局數據區,但靜態局部變量只在定義它的函數中可見。靜態局部變量與局部變量在存儲位置上不同,使得其存在的時限也不同,導致對這兩者操作 的運行結果也不同。
    例如,下面的程序定義了全局變量、靜態局部變量和局部變量:
     //*********************
    //**   ch5_2.cpp  **
    //*********************

        #include <iostream.h>

        void func();
    int n=1; //全局變量

        void main()
    {
    static int a; // 靜態局部變量
    int b= -10; // 局部變量
    cout <<"a:" <<a
    <<" b:" <<b
    <<" n:" <<n <<endl;
    b+=4;
    func();
    cout <<"a:" <<a
    <<" b:" <<b
    <<" n:" <<n <<endl;
    n+=10;
    func();
    }

        void func()
    {
    static int a=2; // 靜態局部變量
    int b=5; // 局部變量
    a+=2;
    n+=12;
    b+=5;
    cout <<"a:" <<a
    <<" b:" <<b
    <<" n:" <<n <<endl;
    }

      運行結果為:
        a:0 b:-10 n:l
    a:4 b:10 n:13
    a:0 b:-6 n:13
    a:6 b:10 n:35

    程序中主函數main()兩次調用了func()函數,從運行結果可以看出,程序控制每次進入func()函數時,局部變量b都被初始化。而靜態局部 變量a僅在第一次調用時被初始化,第二次進入該函數時,不再進行初始化,這時它的值是第一次調用后的結果值4。 main()函數中的變量a和b與func()函數中的變量a和b空間位置是不一樣的,所以相應的值也不一樣。關于變量作用域和可見性的進一步討論見第6 章。
    靜態局部變量的用途有許多:可以使用它確定某函數是否被調用過。使用它保留多次調用的值。

    對靜態局部變量的說明:
    (1) 靜態局部變量在靜態存儲區內分配存儲單元。在程序整個運行期間都不釋放。而自動變量(即動態局部變量)屬于動態存儲類別,存儲在動態存儲區空間(而不是靜態存儲區空間),函數調用結束后即釋放。
    (2) 為靜態局部變量賦初值是在編譯時進行值的,即只賦初值一次,在程序運行時它已有初值。以后每次調用函數時不再重新賦初值而只是保留上次函數調用結束時的 值。而為自動變量賦初值,不是在編譯時進行的,而是在函數調用時進行,每調用一次函數重新給一次初值,相當于執行一次賦值語句。

    (3) 如果在定義局部變量時不賦初值的話,對靜態局部變量來說,編譯時自動賦初值0(對數值型變量)或空字符(對字符型變量)。而對自動變量來說,如果不賦初 值,則它的值是一個不確定的值。這是由于每次函數調用結束后存儲單元已釋放,下次調用時又重新另分配存儲單元,而所分配的單元中的值是不確定的。
    (4) 雖然靜態局部變量在函數調用結束后仍然存在,但其他函數是不能引用它的,也就是說,在其他函數中它是“不可見”的。

    posted on 2010-01-06 11:37 小力力力 閱讀(10994) 評論(0)  編輯  收藏 所屬分類: C/C++
    主站蜘蛛池模板: 日韩免费一区二区三区在线| 亚洲精品福利在线观看| 亚洲中文无码mv| 中文毛片无遮挡高潮免费| 91精品国产亚洲爽啪在线影院 | 噜噜噜亚洲色成人网站| 日本人护士免费xxxx视频| 青青青亚洲精品国产| 亚洲精品网站在线观看不卡无广告| 免费国产污网站在线观看不要卡| 免费观看四虎精品国产永久| 深夜a级毛片免费无码| 国外亚洲成AV人片在线观看| 十八禁视频在线观看免费无码无遮挡骂过| 国产亚洲av片在线观看16女人 | 亚洲中文字幕无码爆乳av中文| 美女无遮挡拍拍拍免费视频| 国产国拍亚洲精品mv在线观看 | 鲁丝片一区二区三区免费| 亚洲欧洲一区二区| 久久午夜免费视频| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 最近中文字幕无免费视频| 亚洲精品无码久久久久牙蜜区| 亚洲av手机在线观看| 国内少妇偷人精品视频免费| 亚洲国产成人在线视频| 国产人妖ts在线观看免费视频| 久久国产精品免费一区二区三区 | 国产亚洲人成网站在线观看| 久久99精品视免费看| 亚洲AV日韩综合一区尤物| 亚洲人成无码网站久久99热国产| 很黄很污的网站免费| 亚洲午夜福利在线视频| 久久影院亚洲一区| 久久99九九国产免费看小说| 一道本不卡免费视频| 亚洲国产精品久久| 最近中文字幕无免费视频| 中文字幕免费视频精品一|