C语言基础:内存分区,静态变量,以及头文件

内存分区

在这里插入图片描述
由下到上,地址由小到大,
堆区:由程序员通过malloc函数和free函数申请和释放;

栈区:由编译器自动分配和释放,栈区的内容只在函数范围内存在,当函数运行结束,内容就会被自动销毁;
****存放的内容;
主要是临时创建的局部变量和函数在调用和返回时的入口参数和返回值.

全局区:存放全局变量和静态变量;
常量区:存放代码中的数字和字符等常量;
代码区:存放可执行代码,防止频繁读取硬盘;

变量存储

普通全局变量:,存放在全局区,默认值为0
普通局部变量;存放在栈区,默认值为随机值(脏数据)

静态全局变量:存放在全局区,所以默认值为0;
在这里插入图片描述

第一次执行testfun函数后,程序结束了,但是静态变量n并没有释放,第二次执行testfun函数时,静态变量n已经存在,任然在生命周期内,还保留了之前的值,所以n++后值为2,
静态变量的值会在程序运行结束后被释放

静态局部变量: 存放在全局区,所以默认值为0;
作用域为当前文件中,生命周期为程序运行至程序运行结束,跨文件会显示未定义;

头文件

头文件.h中包含的是各种函数或者变量的声明,函数和变量的定义是在相同名字的.c文件完成的.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编译时只需要编译两个.c文件即可

如果不引入头文件,则也可以直接将.h文件中的函数声明引入,如下图.
在这里插入图片描述

  • 19
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值