c变量作用域,生存周期,内存

本文探讨了C语言中的不同变量类型(全局变量、extern、静态变量、寄存器变量)的作用域,以及内存分配(自动分配与指针手动分配)和释放机制。还介绍了内存区域划分,如栈、堆、全局/静态变量区和常量区。
摘要由CSDN通过智能技术生成

 全局变量 extern 变量类型 变量名

静态变量 static 变量类型 变量名

寄存器变量 register 变量类型 变量名

// 当在主函数中重复使用全局变量加上extern

#include <stdio.h>
int a=10,b=1;//全局变量
int main()
{
   extern int a=10,b=1;//在主函数中使用全局变量
   printf("%d%d\n",a,b);//输出全局变量
   return 0;
}

        变量作用域,内存分配,生存周期

        auto 自动分配内存

指针变量手动分配内存并先指向NULL然后free函数释放内存

#include <stdio.h>
#include <stdlib.h>
//指针变量手动分配内存 然后free函数释放内存
int main()
{
  int *p=NULL;
  p=malloc(sizeof(int));
if(p==NULL)
{
    fprintf(stderr,"分配内存失败");
}
else
   {
     *p=100;
printf("%d\n",*p);
}
free(p);
  return 0;
}

  变量作用域

局部变量 在函数内有效

全局变量 在文件内有效

静态变量 在函数内有效

寄存器变量 存储在寄存器中 在函数内有效

内存各个区间组成

栈(stack)区 地址由上到下增大

堆(heap)区 地址由下到上增大

全局(静态)变量区

常量区

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值