ホームページ  >  記事  >  バックエンド開発  >  C プログラミングにおける関数のスコープ規則は何ですか?

C プログラミングにおける関数のスコープ規則は何ですか?

王林
王林転載
2023-08-31 08:37:061314ブラウズ

C プログラミングにおける関数のスコープ規則は何ですか?

ローカル スコープ

ローカル スコープで指定されたブロックで定義された変数は、ブロック内でのみ表示され、ブロックの外では表示されません。

グローバル スコープ

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

#include<stdio.h>
int r= 50; /* global area */
main (){
   int p = 30;
   printf (&ldquo;p=%d, r=%d&rdquo; p,r);
   fun ();
}
fun (){
   printf (&ldquo;r=%d&rdquo;,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

以上がC プログラミングにおける関数のスコープ規則は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。