Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

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

  1. C言語でのシフト演算とは何ですか?

    問題 C言語を使用して、数値の左シフト、右シフト、および補数を表示する簡単なプログラムは何ですか? 解決策 左シフト 変数の値が1回左シフトされると、その値は2倍になります。 たとえば、a =10、次にa <<1 =20 右シフト 変数の値を1回右シフトすると、その値は元の値の半分になります。 1 =5 例 以下はシフト操作のCプログラムです- #include<stdio.h> main (){    int a=9;    printf("Rightshift of a = %d\n",a&

  2. C言語での評価、優先順位、関連付けとは何ですか?

    式は、優先順位と結合性の規則に基づいて「C」コンパイラによって評価されます。 式に異なる優先順位演算子が含まれている場合、優先順位ルールが考慮されます。 ここでは、「*」が「-」や「=」よりも優先されるため、10*2が最初に評価されます 式に同じ優先度が含まれている場合、結合法則は左右(または右から左)と見なされます。