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

Cプログラミングの関数のスコープルールは何ですか?


ローカルスコープ

ローカルスコープは、ブロック内で定義された変数がそのブロック内でのみ表示され、ブロック外では非表示になることを指定します。

グローバルスコープ

グローバルスコープは、ブロックの外側で定義された変数がプログラムの最後まで表示されることを指定します。

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

出力

p =30, r = 50
r = 50

関数に関連するスコープルール

  • 関数は、特定のタスクを実行するステートメントのブロックです。

  • 関数の本体内で宣言される変数は、ローカル変数と呼ばれます

  • これらの変数は、それらを作成する特定の関数内にのみ存在します。それらは他の機能や主な機能にも知られていません

  • ローカル変数の存在は、関数が特定のタスクを完了して呼び出しポイントに戻ると終了します。

#include<stdio.h>
main (){
   int a=10, b = 20;
   printf ("before swapping a=%d, b=%d", a,b);
   swap (a,b);
   printf ("after swapping a=%d, b=%d", a,b);
}
swap (int a, int b){
   int c;
   c=a;
   a=b;
   b=c;
}

出力

Before swapping a=10, b=20
After swapping a = 10, b=20

関数の本体の外側で宣言された変数は、グローバル変数と呼ばれます。これらの変数には、どの関数からでもアクセスできます。

#include<stdio.h>
int a=10, b = 20;
main(){
   printf ("before swapping a=%d, b=%d", a,b);
   swap ();
   printf ("after swapping a=%d, b=%d", a,b);
}
swap (){
   int c;
   c=a;
   a=b;
   b=c;
}

出力

Before swapping a = 10, b =20
After swapping a = 20, b = 10

  1. Cプログラミングの関数のさまざまなカテゴリは何ですか?

    引数が存在するかどうか、および値が返されるかどうかに応じて、関数は-に分類されます。 引数も戻り値もない関数 引数なしで戻り値のある関数 引数ありで戻り値のない関数 引数と戻り値を持つ関数 引数と戻り値のない関数 例 #include<stdio.h> main (){    void sum ();    clrscr ();    sum ();    getch (); } void sum (){    int a,b,c;   &

  2. Python変数の基本的なスコープルールは何ですか?

    MarkLutz著のLearningPythonで、彼はPythonスコープがどのように機能するかを覚えておくために次のニーモニックを提案しています。LEGB 最も狭い範囲から最も広い範囲への移行: Lは「ローカル」の略です。これは、関数のローカルスコープで定義されている変数を指します。 Eは「囲み」の略です。これは、他の関数をラップする関数のローカルスコープで定義された変数を指します。 Gは「グローバル」の略です。これらは、ファイルとモジュールのトップレベルで定義されている変数です。 Bは「ビルトイン」の略です。これらは、インタプリタの起動時にスコープにロードされる名前です。