ホームページ  >  記事  >  C言語の静的変数とは何ですか?

C言語の静的変数とは何ですか?

清浅
清浅オリジナル
2019-04-30 15:30:0033411ブラウズ

C 言語の静的変数とは、static キーワードによって変更される変数を指します。静的変数には 2 種類あり、1 つはグローバル変数に定義されたグローバル静的変数、もう 1 つはローカル変数に定義されたローカル静的変数です。

C言語の静的変数とは何ですか?

[おすすめコース: C言語チュートリアル]

静的変数

静的変数は static というキーワードで宣言します 次に、C 言語における静的変数とは何かについて詳しく紹介します。確かに参考値なので、立ち回りの参考になれば幸いです。

Staticとは「静的な」「静的な」という意味です。C言語での意味も実は本来の意味と似ています。「静的な」「グローバルな」という意味で、変数や関数を変更するときに使われます。変数や関数を変更するためによく使用されます。static によって変更された変数や関数のスコープは変更されます。変数はデータ セグメントに保存され、変数のスコープとライフ サイクルは変更できます。 C 言語では、静的変数は、全静的変数とローカル静的変数の 2 つの形式に分けられます。

グローバル静的変数

グローバル変数の前にキーワード static を追加すると、グローバル変数はグローバル静的変数として定義されます

( 1) メモリ内の場所: 静的記憶領域 (プログラム実行中は静的記憶領域が存在します)

# (2) 初期化: 初期化されていないグローバル静的変数は、プログラムによって自動的に 0

## に初期化されます # (3) スコープ: グローバル静的変数は、それが宣言されているファイルの外部には表示されません。定義の時点からファイルの終わりまで。

ローカル静的変数

ローカル変数の前にキーワード static を追加すると、ローカル変数はローカル静的変数として定義されます。

(1) メモリ内の場所: 静的記憶領域

(2) 初期化: 初期化されていないローカル静的変数は、プログラムによって自動的に 0 に初期化されます (自動オブジェクトの値は任意です)。明示的に初期化されない限り)

(3) スコープ: スコープは依然としてローカル スコープであり、それを定義する関数またはステートメント ブロックが終了すると、スコープも終了します。

注意

静的を使用してグローバル変数を変更すると、グローバル変数のスコープが変更されます (グローバル変数が宣言されているファイルの外部には表示されません) ) ) ですが、保存場所は変更されておらず、静的ストレージ領域にあります。

static を使用してローカル変数を変更すると、ローカル変数の格納場所が元のスタックから静的格納領域に変更されます。ただし、ローカル静的変数はスコープを出た後も破棄されず、プログラムの終了までメモリ内に残りますが、アクセスできなくなります。

C言語で静的関数を使用するメリット

(1) 静的関数は、プログラムが終了するまで常に使用される記憶領域に自動的に割り当てられ、呼び出しを回避します。関数のプッシュとポップがはるかに高速になります。

(2) static は、関数のスコープがこのファイルに限定されることを意味します。定義した関数が他のファイルの関数と同じ名前になるかどうかについては心配する必要はありません。

要約: 上記がこの記事の全内容です。皆様のお役に立てれば幸いです。

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

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