《C++ Primer》6.1 函數(shù)基礎 —— 局部靜態(tài)對象

局部靜態(tài)對象

局部靜態(tài)對象在程序的執(zhí)行路徑第一次經過對象定義語句時初始化,并且<u>直到程序終止才被銷毀。</u>

一個例子:

//auto_int.cpp
int func() {
    int val = 0;
    return val++;
}
int main() {
    int times = 10;
    while (times--) {
        cout << func() << ' ';
    }
    return 0;
}

以上程序執(zhí)行的結果為:
0 0 0 0 0 0 0 0 0 0

而使用靜態(tài)變量:

//static_int.cpp
int func() {
    static int val = 0;
    return val++;
}
int main() {
    int times = 10;
    while (times--) {
        cout << func() << ' ';
    }
    return 0;
}

結果為:
0 1 2 3 4 5 6 7 8 9

由此可以發(fā)現(xiàn): static的變量在當前塊結束(函數(shù)結束調用)之后也還是有效的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,697評論 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,812評論 0 11
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,622評論 30 472
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,676評論 1 51
  • 我在想,一個怎么的開場白才能顯得不那么厚重? 顯然,這個問開場白的開場白還是太干了點,盡管自己想了五分鐘。哈哈,那...
    Chiang閱讀 284評論 0 0

友情鏈接更多精彩內容