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

1、全局变量

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

2、局部变量

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

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

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

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

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

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

4、静态变量

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

相关推荐
铅笔小新z6 小时前
【C语言】数组详解
c语言·开发语言
一轮弯弯的明月6 小时前
Spring AOP编程
java·开发语言·spring boot·笔记·spring aop·学习心得
ljt27249606616 小时前
Vue笔记(二)--组件的属性和方法
前端·vue.js·笔记
努力努力再努力wz6 小时前
【Redis入门系列】Redis基础命令详解:从客户端连接到数据读写、key 管理与过期机制
c语言·开发语言·数据结构·数据库·c++·redis·缓存
谙弆悕博士6 小时前
【附C源码】C语言实现散列表
c语言·开发语言·数据结构·算法·散列表·数据结构与算法
Lucky_ldy6 小时前
C语言学习:自定义类型-结构体
c语言·开发语言·学习
kkeeper~6 小时前
0基础C语言积跬步之深入理解指针(5上)
c语言·开发语言·算法
LuminousCPP6 小时前
数据结构-线性表第一篇
数据结构·经验分享·笔记·顺序表
2301_792674866 小时前
java学习(day34)
java·开发语言·学习
学渣676566 小时前
AA-Clip复现笔记
笔记