什么时候在C / C ++中初始化函数级静态变量?

可以使用static关键字定义静态变量。它们是在程序运行时保留在内存中的变量,即它们的生存期是整个程序运行的时间。这与自动变量不同,因为它们仅在函数运行时才保留在内存中,并在函数结束时被销毁。

函数级静态变量是在首次使用它们时创建和初始化的,尽管那时它的内存是在程序加载时分配的。

给出了一个演示C中函数级静态变量的程序,如下所示-

示例

#include<stdio.h>

int func() {

   static int num = 0;

   num += 5;

   return num;

}

int main() {

   for(int i = 0; i<5; i++) {

      printf("%d\n", func());

   }

   return 0;

}

输出结果

上面程序的输出如下。

5

10

15

20

25

现在让我们了解上面的程序。

该函数func()包含一个初始化为0的静态变量num。然后将num加5并返回其值。显示此代码段如下。

int func() {

   static int num = 0;

   num += 5;

   return num;

}

在函数中main(),该函数func()使用for循环调用5次,并返回打印出的num值。由于num是静态变量,因此在程序运行时它将保留在内存中,并且它提供一致的值。显示此代码段如下。

int main() {

   for(int i = 0; i<5; i++) {

      printf("%d\n", func());

   }

   return 0;

}

以上是 什么时候在C / C ++中初始化函数级静态变量? 的全部内容, 来源链接: utcz.com/z/341139.html

回到顶部