中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++靜態變量如何初始化

c++
小樊
81
2024-11-19 19:43:54
欄目: 編程語言

在C++中,靜態變量在程序啟動時初始化,只初始化一次。靜態變量的初始化有兩種方式:局部靜態變量和全局靜態變量。

  1. 局部靜態變量初始化:

在函數內部定義的靜態變量,它在第一次調用該函數時被初始化,之后每次調用函數時不再重新初始化,而是保持上一次調用結束時的值。局部靜態變量的初始化使用關鍵字static進行修飾。例如:

void foo() {
    static int count = 0; // 局部靜態變量
    count++;
    std::cout << "This function has been called " << count << " times." << std::endl;
}

int main() {
    foo();
    foo();
    foo();
    return 0;
}

輸出結果:

This function has been called 1 times.
This function has been called 2 times.
This function has been called 3 times.
  1. 全局靜態變量初始化:

在函數外部定義的靜態變量,它在程序啟動時被初始化,只初始化一次。全局靜態變量的初始化不需要使用關鍵字static進行修飾。例如:

int global_count = 0; // 全局靜態變量

void foo() {
    global_count++;
    std::cout << "This function has been called " << global_count << " times." << std::endl;
}

int main() {
    foo();
    foo();
    foo();
    return 0;
}

輸出結果:

This function has been called 1 times.
This function has been called 2 times.
This function has been called 3 times.

注意:局部靜態變量和全局靜態變量的初始化順序在不同的編譯單元中是未定義的,但在同一編譯單元中的初始化順序是確定的。如果需要在不同編譯單元之間進行同步初始化,可以使用互斥鎖(mutex)等同步機制。

0
琼中| 宣汉县| 嵩明县| 凌源市| 贵德县| 海伦市| 揭西县| 昆山市| 汾西县| 广西| 南投市| 兴文县| 贵溪市| 宁陕县| 霍山县| 湘潭县| 武乡县| 宜黄县| 绥德县| 游戏| 余干县| 兴仁县| 望都县| 巴林右旗| 鱼台县| 曲水县| 双江| 日喀则市| 上思县| 武汉市| 中牟县| 巫山县| 奉节县| 阿拉尔市| 星座| 饶阳县| 科尔| 成都市| 长子县| 黔南| 鄂托克前旗|