全局初始化变量/全局未初始化变量/全局静态变量/局部变量的存储位置,作用域,与生命周期

比如如下程序代码片段

int a = 0; 
char *p1; 
static int x = 10;
int main(void) 
{ 
    int b = 0; 
    char s1[] = "123"; 
    char *p2; 
    char *s2 = "123"; 
    static int c =0; 
    p1 = (char *)malloc(128); 
    p2 = (char *)malloc(256); 
    free(p1); 
    free(p2); 
    return 0; 
} 
变量类型存储空间作用范围生命周期
a 全局初始化变量.data整个工程程序运行周期
p1 全局未初始化变量.bss 是0整个工程程序运行周期
x 全局静态变量.data当前文档(避免命名冲突)程序运行周期
b 局部变量函数内部函数运行周期
s1 局部变量函数内部函数运行周期
p2 局部变量函数内部函数运行周期
s2 局部变量函数内部函数运行周期
c 静态局部变量.data函数内部程序运行周期

静态区
.data:全局初始化的变量
.bss:全局未初始化变量
.rdata:全局只读

全局变量同一个文件中先定义先初始化,不同不确定

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值