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);

 

4.本地变量不会被默认初始化,参数在进入函数的时候被初始化了

posted @   周周周777  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示