C语言导航 7.3变量存储类型和作用域

第三节 变量存储类型和作用域

  • 存储类型

  • 作用域

7.3.1存储类型

1.说明:在数据定义类型中,存储类型用于定义变量在内存中存储区域,从而决定其生存期。

2.生存期:一个"{}"内就是一个生存期,即函数外、函数内、函数中复合语句内等均可以是一个生存期。

3.内容:

①auto:自动类型,该类型是默认类型,会根据定义的位置决定生存期,在生存期结束后将消失。

注意:函数的形参也属于自动类型,该类型变量在获得内存区域后,初始值为随机数。

②static:静态类型,该类型是生存期最长的,只要程序还在执行,该类型的值就可能再用到,所以要一直保留着。

注意:该类型在定义时,如果没有初始化将会被赋予0。在多文件编写或访问时,该类型值将不能被改写。

③register:寄存器类型,该类型是最珍贵的,它将存储在寄存器中。

④extern:外部类型,该类型表示将定义范围扩展到其他位置。

注意:在多文件编写或访问时,该类型也表示其值可以被外部操作。

7.3.2作用域

1.内存四区:全局区、代码区、堆区、栈区。

2.内容:

①全局区:用于存放全局变量和静态变量,即生存其最长的一些变量。

②代码区:用于存放程序代码和常量。

③栈区:用于存放自动类型变量和程序中断地址等,它将根据程序执行情况自由分配空间。

④堆区:用于程序员利用内存分配函数进行操作的区域。

相关推荐
人间凡尔赛6 小时前
Next.js 16 生产级实战:Cache Components + View Transitions 完整指南
开发语言·javascript·ecmascript
可编程芯片开发8 小时前
基于MATLAB的PEF湍流风场生成器模拟与仿真
算法
罗西的思考9 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (9)--- Reward Judging
人工智能·算法·机器学习
2401_841495649 小时前
【数据结构】B+树
数据结构·数据库·c++·b+树·概念·结构·操作原理
稚南城才子,乌衣巷风流10 小时前
函数:编程中的核心概念
开发语言·前端·javascript
阿米亚波10 小时前
【C++】流式数据输入处理(不完全整理)
开发语言·c++·笔记
Mr.HeBoYan10 小时前
一次持续三天才出现的丢包故障——深入解析 DPDK Memory Ordering、rte_ring 与 CPU Memory Barrier (下)
linux·网络·算法·架构·dpdk
大模型码小白11 小时前
JAVA 集合框架进阶:List 与 Set 的深度解析与实战
java·开发语言·人工智能·windows·语言模型·list·ai编程
wabs66611 小时前
关于图论【深度优先搜索的理论基础】
算法·深度优先·图论
皓月斯语11 小时前
【C++基础】三目运算符
开发语言·数据结构·c++