有关变量的总结
内存区域
| 代码段 |
| 全局(静态)变量区 |
| 栈 |
| 堆 |
| 定义 | 生命周期 | 默认值 | 作用域 | 内存区域 | 连接属性 | |
| 普通全局变量 | 函数外部定义的变量 | 程序开始运行就创建,程序结束才销毁 | 0 | 定义变量开始到本文件结束 | 整个文件 | 外部(被其他文件引用) |
| 静态全局变量 | 程序开始运行就创建,程序结束才销毁 | 0 | 定义变量开始到本文件结束 | 整个文件 | 内部 | |
| 普通局部变量 | 定义函数内部的变量(包括形参) | 进入函数时创建,函数结束销毁 | 随机值 | 本函数内部有效 | 栈 | 无 |
| 静态局部变量 | 进入函数时创建 | 0 | 函数内有效 | 全局(静态)变量区 | 无 | |
| 动态内存 | 堆 | |||||
| 函数 | 代码段 |
例:
#include <stdio.h>
/*
void Fun()
{
int a;
a++;
printf("%d\n",a);
}
*/
void Fun()
{
static int a;
a++;
printf("%d\n",a);
}
int main()
{
for(int i=0;i<10;i++)
{
Fun();
}
return 0;
}
本文详细介绍了不同类型的变量(如全局变量、局部变量等)在内存中的分配情况,包括它们的定义、生命周期、默认值、作用域及内存区域。通过具体实例展示了静态局部变量的特点及其使用方法。

被折叠的 条评论
为什么被折叠?



