検索
  • サインイン
  • サインアップ
パスワードのリセットが成功しました

興味のあるプロジェクトをフォローし、それらに関する最新ニュースをチェックしてください

C のスコープ規則

コレクション 205
リーディング 91673
更新時間 2016-09-11

どのような種類のプログラミングにおいても、スコープとは、プログラム内で定義された変数が存在する領域であり、この領域を超えて変数にアクセスすることはできません。 C 言語では、変数を宣言する場所が 3 つあります:

  1. 関数またはブロック内 ローカル 変数

  2. グローバル 変数

    すべての関数の外側
  3. フォーム内の関数パラメータ定義
  4. パラメータ

    ローカル
  5. 変数、
グローバル

変数、形式パラメータとは何かを見てみましょう。 ローカル変数

関数やブロック内で宣言された変数をローカル変数と呼びます。これらは、関数またはコード ブロック内のステートメントでのみ使用できます。ローカル変数は関数の外部では認識されません。以下はローカル変数の使用例です。ここで、変数 a、b、c はすべて main() 関数のローカル変数です。
#include <stdio.h> int main (){  /* 局部变量声明 */  int a, b;  int c; 
  /* 实际初始化 */
  a = 10;
  b = 20;
  c = a + b;
 
  printf ("value of a = %d, b = %d and c = %d\n", a, b, c); 
  return 0;}

グローバル変数

グローバル変数は関数の外側、通常はプログラムの先頭で定義されます。グローバル変数はプログラムのライフサイクル全体を通じて有効であり、どの関数内でもアクセスできます。

グローバル変数にはどの関数からもアクセスできます。つまり、グローバル変数は、宣言された後、プログラム全体で使用できるようになります。以下は、グローバル変数とローカル変数の使用例です:

#include <stdio.h> /* 全局变量声明 */int g; int main (){  /* 局部变量声明 */  int a, b; 
  /* 实际初始化 */
  a = 10;
  b = 20;
  g = a + b;
 
  printf ("value of a = %d, b = %d and g = %d\n", a, b, g); 
  return 0;}

プログラムでは、ローカル変数とグローバル変数の名前は同じにすることができますが、関数内では、ローカル変数の値が、グローバル変数。以下に例を示します:

#include <stdio.h> /* 全局变量声明 */int g = 20; int main (){  /* 局部变量声明 */  int g = 10;
 
  printf ("value of g = %d\n",  g); 
  return 0;}

上記のコードをコンパイルして実行すると、次の結果が生成されます:

value of g = 10

仮パラメータ

関数のパラメータ、つまり仮パラメータは、関数内のローカル変数として扱われます。そして、グローバル変数の上書きを優先します。以下に例を示します:

#include <stdio.h> /* 全局变量声明 */int a = 20; int main (){  /* 在主函数中的局部变量声明 */  int a = 10;  int b = 20;  int c = 0;  int sum(int, int);

  printf ("value of a in main() = %d\n",  a);
  c = sum( a, b);
  printf ("value of c in main() = %d\n",  c);  return 0;}/* 添加两个整数的函数 */int sum(int a, int b){
    printf ("value of a in sum() = %d\n",  a);
    printf ("value of b in sum() = %d\n",  b);    return a + b;}

上記のコードをコンパイルして実行すると、次の結果が生成されます:

value of a in main() = 10value of a in sum() = 10value of b in sum() = 20value of c in main() = 30

ローカル変数とグローバル変数を初期化します

ローカル変数が定義されている場合、システムはそれらを初期化しません。自分で初期化する必要があります。グローバル変数を定義すると、システムは次のように自動的に初期化します:

データ型初期化デフォルト値0'
ホットAIツール
Undress AI Tool
Undress AI Tool

脱衣画像を無料で

AI Clothes Remover
AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undresser.AI Undress
Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

Stock Market GPT
Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

人気のツール
メモ帳++7.3.1
メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版
SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6
ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版
SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

int
char