当前位置: 首页 > news >正文

C语言| 局部变量、全局变量

重点掌握[局部变量] [全局变量]!
[寄存器] 在CPU内部存储数据的区域,是CPU的组成部分,用来暂时存放参与运算的数据和运算结果。(和内存比,存储的数据要少得多)

【局部变量】
[局部变量]定义在函数内部的变量,只在本函数内有效。
用{大括号}限定的,只在大括号内有用,执行完,局部变量马上就会被释放掉。
所以,不同函数中,可以定义同名的局部变量。
复合语句,就是用大括号{ }括起来的多个语句。

【全局变量】

[全局变量]定义在函数外部的变量。
1 可以被整个C程序中所有的函数所共用。
2 作用范围:从定义的位置开始,一直到整个C程序结束。
所以根据定义位置的不同,全局变量的作用范围不同。

在一个函数中,可以使用本函数的局部变量,可以使用有效的全局变量。
[注] 全局变量和局部变量的名字,不能设置一样的!

【系统分配空间,初始化】

局部变量,在栈中分配存储空间。
全局变量,在静态存储区中分配空间。
只要是在静态存储区中分配,如果未初始化则系统都会自动将其初始化为0。
所以,全局变量未初始化,则系统自动将它初始化为0。

不建议使用全局变量的原因:
1 全局变量在程序的整个执行过程中都占用存储单元。
2 全局变量降低了函数的通用性
(自定义函数使用了全局变量,就不能重复使用了,要考虑全局变量有没有和其他文件的变量名重复)
3 过多的全局变量会导致程序出错,逻辑混乱。
4 在同一个程序中,全局变量和局部变量同名,会导致在局部变量的作用范围内,全局变量失效。

在程序设计中,划分模块要求模块的功能单一,对其他模块的影响要尽量小。

相关文章:

  • Linux 详解inode
  • 各类大豆相关数据集大合集
  • 大模型的Lora如何训练?
  • 停车四柱液压举升机 2.0 版技术白皮书
  • Spark处理过程-转换算子和行动算子(一)
  • DocsGPT 远程命令执行漏洞复现(CVE-2025-0868)
  • C# 使用HttpClient下载文件
  • ​Spring Boot 配置文件敏感信息加密:Jasypt 实战
  • 深入了解 gmx_RRCS:计算原理、操作步骤及输出文件解析
  • 【TTS学习笔记】:语音合成领域基本术语
  • 二叉树路径总和
  • 【vue】全局组件及组件模块抽离
  • .NET 在鸿蒙系统上的适配现状
  • 1.5 连续性与导数
  • SnowAdmin - 功能丰富、简单易用的开源的后台管理框架,基于 Vue3 / TypeScript / Arco Design 等技术栈打造
  • 系统架构-通信系统架构设计
  • Java大师成长计划之第19天:性能调优与GC原理
  • [ linux-系统 ] 自动化构建工具makefile
  • 如何通过DNS解析实现负载均衡?
  • 2025 盘古石杯初赛 wp
  • 大外交|中美联合声明拉升全球股市,专家:中美相向而行为世界提供确定性
  • 中国科考船在钓鱼岛附近活动,外交部:完全是中国主权权利范围内的事
  • 警方通报“网约车司机偷拍女乘客”:已被行政拘留
  • 75万采购防火墙实为299元路由器?重庆三峡学院发布终止公告:出现违法违规行为
  • 习近平会见古巴国家主席迪亚斯-卡内尔
  • 上海证监局规范辖区私募经营运作,6月15日前完成自评自纠