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

1、全局变量

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

2、局部变量

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

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

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

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

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

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

4、静态变量

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

相关推荐
Logic1011 分钟前
C语言/数据结构动态规划题解:字符串变回文的最少操作次数——最长回文子序列(LPS)
c语言·数据结构·算法·动态规划·时间复杂度·回文串·最长回文子序列
星恒随风8 分钟前
Linux进程间通信(一):从匿名管道、命名管道到进程池,深入理解Pipe、FIFO与文件描述符
linux·运维·笔记·学习·状态模式
chde2Wang20 分钟前
numpy学习2
学习·numpy
霖霖71421 分钟前
【ESP32笔记】读取DHT11温湿度数据
笔记·单片机·mcu·物联网
Xudde.23 分钟前
DC-6 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
wuminyu24 分钟前
ZGC染色指针在虚拟线程stackChunkOop上的并发屏障全景分析
java·linux·c语言·jvm·c++
xian_wwq25 分钟前
【学习笔记-一文读懂系列】一文读懂Jev模型
笔记·学习
Highcharts.js29 分钟前
关联网络图可视化与力导向关系图开发示例
学习·信息可视化·highcharts·前端可视化·交互图表·力导向图·network graph
Logic10141 分钟前
C语言/数据结构组合数学题解:数字好排列计数——质数倍数分类与阶乘取模
c语言·数据结构·算法·组合数学·时间复杂度·排列·取模运算
Awh-44 分钟前
ARM 裸机开发 DAY8 学习笔记
arm开发·笔记·学习