C 语言中的局部作用域和全局作用域规则是什么?


全局作用域

全局作用域指定在块外定义的变量到程序结束都是可见的。

示例

#include<stdio.h>
int c= 30; /* global area */
main (){
   int a = 10;
   printf (“a=%d, c=%d” a,c);
   fun ();
}
fun (){
   printf (“c=%d”,c);
}

输出

a =10, c = 30
c = 30

局部作用域

局部作用域指定在块内定义的变量仅在该块中可见,在块外不可见。

在块或函数(局部)中声明的变量可在该块内访问,在块外不存在。

示例

#include<stdio.h>
main (){
   int i = 1;// local scope
   printf ("%d",i);
   }
   {
      int j=2; //local scope
      printf("%d",j);
   }
}

输出

1 2

即使变量在各自的块中被重新声明并且具有相同名称,也会被认为是不同的。

示例

#include<stdio.h>
main (){
   {
      int i = 1; //variable with same name
      printf ("%d",i);
   }
   {
      int i =2; // variable with same name
      printf ("%d",i);
   }
}

输出

1 2

在名称与外部块中的名称相同的块内重新声明变量,在执行内部块时会屏蔽外部块变量。

示例

#include<stdio.h>
main (){
   int i = 1;{
      int i = 2;
      printf (“%d”,i);
   }
}

输出

2

在内部块内声明的变量可用于嵌套块,但前提是这些变量未在内部块中声明。

示例

#include<stdio.h>
main (){
   int i = 1;{
      int j = 2;
      printf ("%d",j);
      printf ("%d",i);
   }
}

输出

2 1

更新于: 09-Mar-2021

283 人查看

开启你的 事业

完成课程后获得认证

开始
广告