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 人檢視

開啟你的 事業

完成課程後獲得認證

開始
廣告
© . All rights reserved.