首页 > 后端开发 > C++ > 静态变量在C/C++中存储在哪里?

静态变量在C/C++中存储在哪里?

王林
发布: 2023-09-15 21:09:03
转载
1354 人浏览过

静态变量在C/C++中存储在哪里?

静态变量是程序运行时保留在内存中的变量,即它们的生命周期是整个程序运行的时间。这与自动变量不同,它们仅在函数运行时保留在内存中,并在函数结束时被销毁。

静态变量存储在内存的数据段中。数据段是程序虚拟地址空间的一部分。

所有没有显式初始化或初始化为零的静态变量都存储在未初始化数据段(也称为未初始化数据段)中。 BSS 段)。与此相比,初始化的静态变量存储在初始化的数据段中。

示例如下 -

static int x = 5;
static int y;

The static variable x is stored in the initialized data segment and the static variable y is stored in the BSS segment.
登录后复制

演示 C 语言静态变量的程序如下 -

示例

 现场演示

#include<stdio.h>
int func(){
   static int i = 4 ;
   i++;
   return i;
}

int main(){
   printf("%d\n", func());
   printf("%d\n", func());
   printf("%d\n", func());
   printf("%d\n", func());
   printf("%d\n", func());
   printf("%d\n", func());

   return 0;
}
登录后复制

上述程序的输出如下 -

5
6
7
8
9
10
登录后复制

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

在函数func()中,i是一个静态变量,被初始化为4。因此它存储在初始化数据段中。然后 i 递增并返回其值。显示这一点的代码片段如下 -

int func(){
   static int i = 4 ;
   i++;
   return i;
}
登录后复制

在函数main()中,函数func()被调用6次,它返回打印的i的值。由于 i 是静态变量,因此在程序运行时它会保留在内存中并提供一致的值。显示这一点的代码片段如下 -

printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
登录后复制

以上是静态变量在C/C++中存储在哪里?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板