ホームページ  >  記事  >  バックエンド開発  >  C と C の静的変数、自動変数、グローバル変数、ローカル変数の違いは何ですか?

C と C の静的変数、自動変数、グローバル変数、ローカル変数の違いは何ですか?

DDD
DDDオリジナル
2024-11-02 17:34:02947ブラウズ

What's the Difference Between Static, Auto, Global, and Local Variables in C and C  ?

C および C の静的変数、自動変数、グローバル変数、およびローカル変数について理解する

C および C で変数を操作する場合、次のことが不可欠です。静的変数、自動変数、グローバル変数、ローカル変数の間のニュアンスを把握します。この区別は、プログラム内でのアクセシビリティと存続期間の両方に関係します。

ローカル変数

ローカル変数 (「ブロック スコープ」変数とも呼ばれる) は、それらが宣言されているコードブロック。これらの変数はブロックに入ったときにのみ存在し、ブロックから出ると存在しなくなります。この概念を説明します。

void f() {
    int i; // Local variable
    i = 1; // Accessible within f()
}

グローバル変数

グローバル変数は、「ファイル スコープ」 (C の場合) または「名前空間スコープ」 (C の場合) を持ちます。次に示すように、宣言後のプログラムのどの時点からでもアクセスできます。

int i; // Global variable
void f() {
    i = 1; // Accessible anywhere
}

自動変数

自動変数、「自動ストレージ期間」として知られています。 " 変数はローカルに存在します。彼らの存在は、彼らが住んでいるブロックの期間に限定されます。ブロックを出ると、これらの変数は破棄され、ブロックに再度入るときに再び存在します。

for (int i = 0; i < 5; ++i) {
    int n = 0; // Automatic variable
    printf("%d ", ++n); // Value of n is reset to 0 each iteration
}

静的変数

静的変数プログラム内の有効期間 (「静的ストレージ期間」と呼ばれます) を延長してください。コントロールがスコープを出ても、その値は存続します。

for (int i = 0; i < 5; ++i) {
    static int n = 0; // Static variable
    printf("%d ", ++n); // Value of n persists across iterations
}

結論として、これらの変数の型の違いを把握することで、C および C でより効率的で的を絞ったプログラミングが可能になります。変数の範囲と存続期間を理解することで、開発者は特定のニーズに合わせて適切な変数タイプを選択できるようになります。

以上がC と C の静的変数、自動変数、グローバル変数、ローカル変数の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。