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

C言語でステートメントブロックに関連するスコープルールを説明する


スコープルールは、次の要因に関連しています-

  • 変数のアクセシビリティ。
  • 変数が存在する期間。
  • 変数の使用の境界。

ステートメントブロックに関連するスコープルール 以下に示します-

  • ブロックは、一連のステートメントで構成される中括弧で囲まれています。

  • ブロック内で宣言された変数は、そのブロック内でアクセスおよび使用可能であり、ブロック外には存在しません。

例1

以下は、ステートメントブロックに関連するスコープルールのCプログラムです。 −

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

出力

出力は以下のとおりです-

1 2

変数がそれぞれのブロックで同じ名前で再宣言されている場合でも、それらは異なる方法で考慮されます。

例2

これは、ステートメントブロックに関連するスコープルール用の別のCプログラムです。 −

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

出力

出力は以下のとおりです-

1 2

外側のブロックと同じ名前のブロック内の変数を再宣言すると、内側のブロックを実行している間、外側のブロックの変数がマスクされます。

例3

これは、ステートメントブロックに関連するスコープルール用の別のCプログラムです。 −

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

出力

出力は以下のとおりです-

2

内側のブロックの外側で宣言された変数は、これらの変数が内側のブロック内で宣言されていない限り、ネストされたブロックにアクセスできます。

例4

ステートメントブロックに関連するスコープルールの別のプログラムを検討してください −

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

出力

出力は以下のとおりです-

2 1

  1. ユニオンにC言語でのポインタを説明する

    ユニオンはメモリロケーションと呼ばれ、さまざまなデータ型のいくつかの変数によって共有されます。 構文 構文は次のとおりです- union uniontag{    datatype member 1;    datatype member 2;    ----    ----    datatype member n; }; たとえば、 union sample{    int a;    float b;    char c; }

  2. C言語でのポインタアクセスの概念を説明する

    ポインタは、他の変数のアドレスを格納する変数です。 ポインタの宣言、初期化、アクセス 次のステートメントを検討してください- int qty = 179; ポインタの宣言 int *p; 「p」は、別の整数変数のアドレスを保持するポインタ変数です。 ポインタの初期化 アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。 int qty = 175; int *p; p= &qty; 文字列の配列内の要素にアクセスする際にポインタがどのように役立つかの例を考えてみましょう。 このプログラムでは、特定の場所に存在する要素にアクセスしようとしています。操