回覆列表
  • 1 # 遛電子的老李

    static關鍵字的涵義有2個。

    1,區域性可見。

    2,靜態變數。

    解釋第一個,如果有在a.c檔案中用static聲明瞭全域性變數x,在b.c中同樣可以用static宣告一個全域性變數x,這裡使用了static的區域性可見性。用途很寬廣,不列舉了。

    解釋第二個,在函式中用static宣告區域性變數,此變數在靜態區,必須初始化。auto型變數地址在棧區,函式中用完就被釋放了。而static變數在你下次呼叫函式時依然保持在上次被更改的值。用在例如需要記錄上一次值的地方。

    比如有 獲取2次平均值函式

    int getAverage(int x){

    static int lastx=0;

    int ave;

    ave=(x+lastx)/2;

    lastx=x;/*在下次呼叫函式時,lastx保持x的值*/

    return ave;

    }

    void main(){

    int x=2;

    int y;

    y=getAverage(x);//y=1

    x=10;

    y=getAverage(x);//y=6

    }

    最後送你一隻神獸

  • 中秋節和大豐收的關聯?
  • 高中物理學什麼?