当前位置: 首页 > news >正文

C语言中局部变量和全局变量是否可以重名?为什么?

可以重名

在C语言中, 局部变量指的是定义在函数内的变量, 全局变量指的是定义在函数外的变量

他们在程序中的使用方法是不同的, 当重名时, 局部变量在其所在的作用域内具有更高的优先级, 会覆盖或者说隐藏同名的全局变量

具体来说:

局部变量的生命周期只在函数内部,如果出了函数,局部变量就会销毁

全局变量的生命周期在程序的整个执行的过程中都是可见的,程序执行完成后,则销毁

当在函数中访问一个变量时, 编译器首先会在函数内查找变量,如果找到了,则使用局部变量, 如果没找到,则会在函数外部, 找这个变量, 直到找到该变量, 或者到达了最顶层的全局作用域

如果重名, 会带来一些潜在的问题, 为了避免数据的混淆,通常时不建议局部变量和全局变量重名的, 清晰的变量名,可以反应对应的意义。

#include <stdio.h>int a = 10;void test()
{int a = 20;printf("%d\n", a);
}int main()
{printf("%d\n", a);test();return 0;
}

http://www.lryc.cn/news/338891.html

相关文章:

  • 小程序中配置scss
  • ZYNQ-Vitis(SDK)裸机开发之(四)PS端MIO和EMIO的使用
  • 聊聊jvm中内存模型的坑
  • DevOps已死?2024年的DevOps将如何发展
  • appium控制手机一直从下往上滑动
  • 为什么光伏探勘测绘需要无人机?
  • day10 | 栈与队列 part-2 (Go) | 20 有效的括号、1047 删除字符串中的所有相邻重复项、150 逆波兰表达式求值
  • 深入解析Tomcat的工作流程
  • 【web网页制作】html+css旅游家乡山西主题网页制作(3页面)【附源码】
  • 系统参数指标:QPS、TPS、PV、UV等
  • 一入鸿蒙深似海,从此Spring是路人:鸿蒙开发面试题
  • 【Python】使用OPC UA创建数据服务器
  • JavaScript(六)-高级篇
  • 速盾:游戏cdn什么意思
  • 数据库-Redis(11)
  • 【网安小白成长之路】6.pikachu、sql-labs、upload-labs靶场搭建
  • (七)C++自制植物大战僵尸游戏关卡数据加载代码讲解
  • wpf下RTSP|RTMP播放器两种渲染模式实现
  • Element-UI 自定义-下拉框选择年份
  • 二叉树的链式存储
  • [计算机效率] 鼠标手势工具:WGestures(解放键盘的超级效率工具)
  • Linux useradd命令教程:如何创建新的用户账户(附实例详解和注意事项)
  • 基于ollama搭建本地chatGPT
  • C++11 数据结构3 线性表的循环链式存储,实现,测试
  • 初识DOM
  • 计算机视觉实验五——图像分割
  • 移动Web学习06-移动端适配Less预处理器项目案例
  • LangChain-25 ReAct 让大模型自己思考和决策下一步 AutoGPT实现途径、AGI重要里程碑
  • 24/04/15总结
  • vue3、vue2中nextTick源码解析