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;
}