C语言本地变量的规则
以以下一段代码为例:
1 #include <stdio.h> 2 //以下代码是否能交换两个变量的值? 3 void swap(int a,int b); 4 5 int main() 6 { 7 int a=5; 8 int b=6; 9 10 swap(a,b); 11 12 printf("%d,%d",a,b); 13 14 return 0; 15 } 16 17 void swap(int a,int b) 18 { 19 int t=a; 20 a=b; 21 b=t; 22 // printf("%d,%d",a,b); 23 }
结果是5,6,并没有得到交换,因为main和swap是两个不同的块,swap内部做了交换,但是如果离开那么就失效了
1.本地变量是定义在块内的:
它可以是定义在函数的块内,也可以是语句的块内,也可以随便拉一对大括号来定义变量
2.程序进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了
3.块外面定义的变量在里面仍然有效,块里面定义了和块外面同名的则会掩盖块外面的,不能在同一个块内定义同名的变量
{ int a=111; printf("a==%d",a); } printf("a==%d",a);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)