C++ 函式中靜態變數的生命週期是多長?


靜態變數是用關鍵字 static 宣告的變數。靜態變數的空間僅分配一次,並且在程式的整個生命週期內使用。

此變數一旦宣告,就會一直存在,直到程式執行完畢。因此,靜態變數的生命週期就是程式的生命週期。

下面給出的程式演示了一個靜態變數。

示例

 線上演示

#include <iostream>
using namespace std;
void func() {
   static int num = 1;
   cout <<"Value of num: "<< num <<"\n";
   num++;
}
int main() {
   func();
   func();
   func();
   return 0;
}

輸出

上述程式的輸出如下。

Value of num: 1
Value of num: 2
Value of num: 3

現在,讓我們瞭解一下上述程式。

在函式 func() 中,num 是一個靜態變數,僅初始化一次。然後顯示 num 的值,並將 num 增加 1。程式碼片段如下所示 −

void func() {
   static int num = 1;
   cout <<"Value of num: "<< num <<"\n";
   num++;
}

在函式 main() 中,函式 func() 被呼叫 3 次。值 num 只分配一次,而不是在每次函式呼叫時分配。程式碼片段如下所示。

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

更新於: 26-6-2020

16K+ 瀏覽量

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.