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

1、全局变量

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

2、局部变量

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

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

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

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

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

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

4、静态变量

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

相关推荐
Ma0407138 分钟前
【机器学习】监督学习、无监督学习、半监督学习、自监督学习、弱监督学习、强化学习
人工智能·学习·机器学习
小熊officer34 分钟前
Nginx学习
运维·学习·nginx
秋邱37 分钟前
价值升维!公益赋能 + 绿色技术 + 终身学习,构建可持续教育 AI 生态
网络·数据库·人工智能·redis·python·学习·docker
Three~stone43 分钟前
Matlab2025b的安装教程(附安装包和密钥破解文件)
学习·mysql·持续部署
爱学习的大牛1231 小时前
如何系统学习网络渗透测试:从入门到精通的完整指南
网络·学习
程序猿编码1 小时前
PRINCE算法的密码生成器:原理与设计思路(C/C++代码实现)
c语言·网络·c++·算法·安全·prince
落子摘星2 小时前
suricata学习杂记(一)
学习·modbus·suricata·pdu
charlie1145141912 小时前
深入理解C/C++的编译链接技术6——A2:动态库设计基础之ABI设计接口
c语言·开发语言·c++·学习·动态库·函数
white-persist2 小时前
【攻防世界】reverse | Reversing-x64Elf-100 详细题解 WP
c语言·开发语言·网络·python·学习·安全·php
love530love2 小时前
【保姆级教程】Windows + Podman 从零部署 Duix-Avatar 数字人项目
人工智能·windows·笔记·python·数字人·podman·duix-avatar