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

1、全局变量

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

2、局部变量

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

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

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

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

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

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

4、静态变量

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

相关推荐
厂太_STAB_丝针10 分钟前
【自学嵌入式(8)天气时钟:天气模块开发、主函数编写】
c语言·单片机·嵌入式硬件
charlie1145141912 小时前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(协议层封装)
c语言·驱动开发·单片机·学习·教程·oled
*TQK*2 小时前
ZZNUOJ(C/C++)基础练习1041——1050(详解版)
c语言·c++·编程知识点
马船长3 小时前
[BSidesCF 2020]Had a bad day1
学习
*TQK*3 小时前
ZZNUOJ(C/C++)基础练习1031——1040(详解版)
c语言·c++·编程知识点
黄交大彭于晏3 小时前
三端回链增加截图功能
学习
linwq83 小时前
设计模式学习(二)
java·学习·设计模式
Fhd-学习笔记4 小时前
《大语言模型》综述学习笔记
笔记·学习·语言模型
Terasic友晶科技5 小时前
第26篇 基于ARM A9处理器用C语言实现中断<二>
c语言·fpga开发·中断·de1-soc开发板
简知圈5 小时前
【04-自己画P封装,并添加已有3D封装】
笔记·stm32·单片机·学习·pcb工艺