2024.3.11-408学习笔记-C-全局变量、局部变量、静态变量

1、全局变量

全局变量就是声明在main()函数外的变量,作用范围是整个C工程(其实是从定义位置到程序末尾有效),也就是说同一个C工程中的其他.c文件均可调用。但是有个例外,static关键字修饰全局变量,会使它本地化,就不能被其他.c文件调用,作用仅限于当前.c文件。

2、局部变量

局部变量就是声明在函数中的变量,作用范围是所属的整个函数,实际上就是所属的代码块内有效(代码块就是用{}括起来的代码),一旦所属的函数调用完毕,亦或是所属的代码块执行完毕,就会被清除。

但是有个例外,static关键字修饰局部变量,会使得它的生命周期延长,即使所声明的函数调用完毕也不会消亡,只有当主调函数调用完毕才会消亡。

函数的形参也是局部变量,仅生效于函数内部。

分支语句和循环语句所创建的循环变量也是局部变量,仅生效于语句内部。

3、全局变量与局部变量发生重名

若全局变量与局部变量发生重名时,若程序运行至局部变量的生命周期(也就是局部变量的作用范围),则以局部变量为主,其他时候以全局变量为主。

4、静态变量

static关键字修饰的变量就是静态变量,全局变量与静态变量都存储于静态区,而非栈区。

相关推荐
babe小鑫2 分钟前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
91刘仁德6 分钟前
C++ 继承和多态 设计模式
c语言·c++·笔记
码行山野赴时序归途11 分钟前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
天国梦29 分钟前
实测天学网AI作文批改:三篇作文,语法纠错与语篇逻辑的真实表现
人工智能·学习
m4Rk_33 分钟前
【论文阅读】Agent 记忆机制(75):TiMem——用时间记忆树实现长期记忆的层级巩固
论文阅读·人工智能·学习·开源·github
库玛西1 小时前
哈夫曼树与前缀编码:数据压缩的贪心核心
c语言·c++·笔记·考研
外收内放1 小时前
Python与AI应用(项目开发实战:AI智能伴侣第三版)
python·学习·ai编程
pddqjd1 小时前
顺德区中考美术集训画室概念释义与核心服务要点梳理
学习
雷✘2 小时前
C 语言预处理中的宏展开、条件编译与头文件保护
c语言
aramae2 小时前
模拟实现memset()(C语言)
c语言·开发语言·后端