區域性變數加上static之後依然是區域性變數

2021-07-13 11:21:53 字數 383 閱讀 4398

#includeint count_calls()

int main()

{ for(int i=0;i<10;i++)

{static int b=0;

b++;

std::cout << count_calls()<<" "《之前看這個**有些疑問

1.函式重複呼叫了,那麼靜態變數是不是會重複定義或者變為賦值操作。

這個問題的原理應該和編譯器還是預處理器有關吧,迴圈和函式重複呼叫時 靜態變數定義和初始化的**只執行一次。

2.函式裡初始化了a,為什麼在迴圈內還能初始化a。

這個就比較2b了,因為區域性變數加上static之後它仍然是區域性變數,作用域不變生存週期變長了而已。所以兩個a不在相同的作用域,含義不同。

靜態區域性變數 static 用法

有時希望函式中的區域性變數的值在函式呼叫結束後不消失而保留原值,即其占用的儲存單元不釋放,在下一次該函式呼叫時,該變數保留上一次函式呼叫結束時的值。這時就應該指定該區域性變數為靜態區域性變數 static local variable 例 靜態區域性變數的值。include using namesp...

static 全域性變數 區域性變數 函式

c語言中使用靜態函式的好處 靜態函式會被自動分配在乙個一直使用的儲存區,直到退出應用程式例項,避免了呼叫函式時壓棧出棧,速度快很多。關鍵字 static 譯成中文就是 靜態的 所以內部函式又稱靜態函式。但此處 static 的含義不是指儲存方式,而是指對函式的作用域僅侷限 於本檔案。使用內部函式的好...

static修飾全域性區域性變數函式

1.static修飾全域性變數 特點如下 1 儲存區 靜態儲存區靜態儲存區在整個程式執行期間都存在 2 作用域 全域性靜態變數在宣告他的檔案之外是不可見的。準確地講從定義之處開始到檔案結尾。非靜態全域性 變數的作用域是整個源程式 多個原始檔可以共同使用 好處 1 不會被其他檔案所訪問,修改 2 其他...