当前位置 博文首页 > CW_qian的博客:8月23日笔记C语言基础(补5)内存管理2
内存管理:
?? ?
????????变量的生命周期:
?????????? ?1.自动存储期
?????????? ?2.静态存储期
?????????? ?3.自定义存储期
? ? 1.自动存储期:
?? ??? ?在栈空间分配变量,系统自动分配空间,内存大小为8M
?? ??? ?1.自动变量
?? ??? ??? ?auto a1 = 3;
?? ??? ??? ?printf("%d\n",a1);
?? ??? ?
?? ??? ?2.局部变量
?? ??? ?demo:
?? ??? ??? ?#include <stdio.h>
?? ??? ??? ?
?? ??? ??? ?const int a = 10; // 只读数据段,全局变量
?? ??? ??? ?int a; // 未初始化的静态数据段,全局变量
?? ??? ??? ?int b = 10; // 已初始化的静态数据段,全局变量
?? ??? ??? ?
?? ??? ??? ?void f(int x,int y) // 自动存储期,栈
?? ??? ??? ?{
?? ??? ??? ??? ?int a = x;
?? ??? ??? ??? ?int b = 1;
?? ??? ??? ??? ?char *p;
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ?int main()
?? ??? ??? ?{
?? ??? ??? ??? ?int a,int b; // 自动存储期,栈空间,局部变量
?? ??? ??? ??? ?static int c; // 存放在静态数据段
?? ??? ??? ??? ?static int d = 10;// 存放在静态数据段
?? ??? ??? ??? ?char *p; // 栈空间
?? ??? ??? ??? ?f(a,b);
?? ??? ??? ?}
? ? 自定义存储
?? ??? ?作用是开发者手动分配空间,手动释放空间,内存大小由实际物理内存而定
?? ?
?? ??? ?一般通过malloc,calloc,realloc来分配空间