static变量的初始化,生存期,作用域
来源:互联网 发布:gephi数据分析 编辑:程序博客网 时间:2024/06/09 23:56
1、初始化。
全局static变量的初始化在编译的时候进行。在main函数被调用之前初始化,并且,只初始化一次。
函数static变量在函数中有效,第一次进入函数初始化。以后进入函数将沿用上一次的值。
2、生存期。
生存期,是main第一次执行,直到程序结束。比如下代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
if(true)
{
static int m=10;
}
int c=0;
return 0;
}
尽管m变量在函数内部定义。但是它的生存期直到main函数执行完才结束。而非出了if语句的括号函数就结束。这是因为static变量不是存放在堆栈中的,而是存放在全局静态数据区中。
1、作用域。
如果在{}中定义了static变量,则其作用域为{}内。例如上面的m变量就只能在{}内访问。如果有如下的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
if(true)
{
static int m=10;
}
int c=0;
printf("%d",m);
return 0;
}
将在printf处报错:“error C2065: 'm' : undeclared identifier”。指示该变量没有定义。
如果将static变量定义为全局的。则其拥有文件作用域:只在声明的文件中有效,其他源文件中不可见;同时有了static的生命周期。
如下:
//source.cpp
#include <stdio.h>
#include <stdlib.h>
int m=3;
int main()
{
if(true)
{
m=10;
}
int c=0;
printf("%d",m);
return 0;
}
则static变量在source.cpp文件中有效。
- static变量的初始化,生存期,作用域
- static变量的生存期及作用域
- C语言变量作用域、生存期及static问题
- 变量的作用域及生存期
- 变量的生存期和作用域
- 变量的作用域和生存期
- 变量的作用域和生存期
- static作用:静态变量的生存周期和作用域
- static作用:静态变量的生存周期和作用域
- static作用:静态变量的生存周期和作用域
- static作用:静态变量的生存周期和作用域
- 作用域 生存期 static extern..........
- C语言的变量的作用域和生存期
- C语言的变量的作用域和生存期
- C语言的变量的作用域和生存期
- 变量的作用域和生存期--C++
- JAVA 变量的作用域 和 生存期
- 静态变量的生存期和作用域
- 唱衰Docker,给大红大火的Docker泼点冷水
- iOS UIScrollView
- 微信公众平台API
- 利用LD_PRELOAD进行hook
- pat 1064
- static变量的初始化,生存期,作用域
- NYOJ 555 相反输出【简单题】
- hdu 2112 HDU Today Dijkstra算法应用+set集合判重+二分查找。不错的一题
- 杭电1004---Let the Balloon Rise
- C调用lua
- (hdu step 4.2.7)逃离迷宫(在有转弯次数的限制的情况下,判断一个点是否能到另一个点)
- 怎样收集智能数据?
- Codeforces Rockethon 2015 解题报告
- Hello