[C言語に初めて精通している]ローカル変数、グローバル変数、スコープ、ライフサイクル

1.変数の分類

1.1ローカル変数

一時変数とも呼ばれ、関数とコードブロックで定義され、通常はコードブロック内で使用できる変数のみです。

1.2グローバル変数

関数の外部に配置され(メイン関数も関数です)、同じ___。cファイル内のどこでも使用できる変数。

1.3知識のポイント

1.3.1近接の原則

ローカル変数とグローバル変数は同じ名前です->近接の原則。
 
グローバル変数とローカル変数の名前が同じ場合は、使用場所に近い変数が優先されます。
(同じ名前の変数を使用することはお勧めしません)

#include <stdio.h>
int global = 2020;//全局变量
int main()
{
    
    
	int local = 2021;//局部变量
	int global = 2022;//局部变量
	printf("global = %d\n", global);

	return 0;
}

ここに画像の説明を挿入

1.3.2アクセスルール

グローバル変数はどの関数でも直接アクセスできますが、ローカル変数はこの関数でのみアクセスできます。

#include <stdio.h>
double weight = 45.5;//全局变量

void fun()
{
    
    
	printf("%f\n", weight);
	printf("%f\n", high);//error!
}

int main()
{
    
    
	double high = 180.5;//局部变量
	printf("%f\n", weight);
	printf("%f\n", high);
    fun();
	return 0;
}

ここに画像の説明を挿入

1.3.3有効範囲

C言語の変数は、変数が定義された領域以降でのみ有効です(マクロと同様)。

#include <stdio.h>

int main()
{
    
    
	printf("%f\n", weight);//error!
}
	
	return 0;
}
double weight = 45.5;

ここに画像の説明を挿入

2.変数の使用

(1)変数は使用前に定義されます。
(2)入力および出力フォーマット制御に注意し、scanfに&を追加することを忘れないでください。

#include <stdio.h>

int main()
{
    
    
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("输入两个操作数:>");
	scanf("%d %d", &num1, &num2);
	sum = num1 + num2;
	printf("sum = %d\n", sum);

	return 0;
}

ここに画像の説明を挿入

3.変数の範囲とライフサイクル

3.1範囲

変数の有効範囲を指します。

3.1.1ローカル変数のスコープ

変数のローカルスコープです。

3.1.2グローバル変数のスコープ

それはプロジェクト全体です。
 

3.2ライフサイクル

変数の作成から変数の破棄までの期間(つまり、変数の存在時間)を指します。

3.2.1ローカル変数のライフサイクル

これは、スコープに入るライフサイクルの始まりであり、スコープ外のライフサイクルの終わりです。

この変数は、関数が呼び出されたときに解放されます。
(関数の呼び出しで形成され、関数のリリースでリリースされます。)

3.2.2グローバル変数のライフサイクル

これは、プログラム全体のライフサイクルです。

プログラムの実行後、プログラムが終了するまで存在します。
(プログラムの存在とともに存在し、プログラムの終了時にリリースします。)

おすすめ

転載: blog.csdn.net/m0_46630468/article/details/113063756