91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
成武县| 资阳市| 贵南县| 迁西县| 和政县| 成安县| 庄浪县| 阿合奇县| 门源| 平和县| 庆阳市| 成安县| 原阳县| 定结县| 石林| 萝北县| 临高县| 普宁市| 确山县| 栾城县| 新乡市| 武鸣县| 宜都市| 德江县| 通山县| 太仓市| 菏泽市| 东乡族自治县| 台前县| 新干县| 吐鲁番市| 拉萨市| 澄城县| 上虞市| 尉犁县| 南康市| 来宾市| 榆林市| 孟连| 石泉县| 南华县|