ホームページ > よくある問題 > C言語での静的変数の使い方とは何ですか?

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

清浅
リリース: 2020-09-08 14:40:59
オリジナル
20520 人が閲覧しました

C 言語における静的変数の役割は、静的変数にはメモリ機能があるため、関数呼び出し中に値を変更しないようにすることですが、そのスコープは制限されており、モジュール内の関数によってのみアクセスできます。 . .

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

推奨: 「c チュートリアル

C 言語における静的変数の役割は次のとおりです。変数 メモリ機能を持ち、関数呼び出し中は値が変更されない、範囲が限定されており、モジュール内の関数からのみアクセスできるなど。

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

C 言語では、キーワード static は静的を意味し、次の 3 つの明らかな機能があります:

1. 関数本体では、静的変数 メモリ効果がありますつまり、static として宣言された変数の値は、この関数が呼び出されるプロセス中は変更されません。

2. モジュール内 (ただし関数の外) では、スコープが制限されています。変数が静的に宣言されている場合、その変数にはモジュール内のすべての関数からアクセスできますが、他の関数からはアクセスできません。モジュール外の関数。

3. 内部関数は現在のソース ファイル内に記述および定義する必要があります。現在のソース ファイル外で使用できる関数についてはヘッダ ファイルに記述し、これらの関数を使用するソース ファイルは必ず記述してください。このヘッダー ファイルをインクルードします。

静的データ メンバーの特性:

1. 非静的データ メンバーの場合、各クラスは独自のコピーを持ちます。静的データ メンバーはクラスのメンバーとして扱われます。このクラスのオブジェクトがいくつ定義されていても、プログラム内に存在する静的データ メンバーのコピーは 1 つだけであり、このタイプのすべてのオブジェクトによって共有され、アクセスされます。

2. 静的データメンバーはグローバルデータ領域に格納されます。定義時に領域を確保する必要があるため、クラス宣言では定義できません。静的データ メンバーはこのクラスのすべてのオブジェクトで共有されるため、特別なクラス オブジェクトには属しません。クラス オブジェクトが生成されない場合、そのスコープは表示されます。つまり、クラスのインスタンスが存在しない場合でもプログラマはそれを使用できます。生成された。

3. 静的データ メンバーは、パブリック、保護、およびプライベートのアクセス ルールにも準拠します。

4. 静的メンバー変数の初期化はクラスの外部で行われるため、現時点では static キーワードは使用できません。 private および protected の静的メンバーはクラスの外で初期化できますが、クラスの外からアクセスすることはできません。

静的データ メンバーの利点:

1. 静的データ メンバーはプログラムのグローバル名前空間に入らないため、他のグローバル メンバーと競合する可能性はありません。プログラム内の名前。

2. 情報隠蔽が実現できます。静的データ メンバーはプライベート メンバーにすることができますが、グローバル変数はプライベート メンバーにすることができません。

#include<stdio.h>
#include <iostream>
#include "a.h"
using namespace std;
void fun(int i)
{    static int value = i++;
    cout<<value<<endl;
}int main()
{
    fun(0);
    fun(1);
    fun(2);    return 0;
}
ログイン後にコピー

実行結果

0
0
0
ログイン後にコピー

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート