const 修飾子は定数を示し、値は変更できません。static 修飾子は変数の有効期間とスコープを示します。 const によって変更されたデータ メンバーは、初期化後に変更できません。static によって変更された変数は、プログラムの開始時に初期化され、プログラムの終了時に破棄されます。アクティブなオブジェクトがなくても存在し、関数間でアクセスできます。 const で変更されたローカル変数は宣言時に初期化する必要がありますが、static で変更されたローカル変数は後で初期化できます。 const 修飾されたクラス メンバー変数はコンストラクターまたは初期化リストで初期化する必要がありますが、静的修飾されたクラス メンバー変数はクラスの外部で初期化できます。
#c における const と static の違い
単純かつ明確な違い:
const 修飾子は、プログラムの実行中に値を変更できない定数を表します。 - 静的修飾子は、変数の有効期間とスコープを示します。
-
詳細な説明:
const 修飾子:
const は定数を宣言するために使用されます。 is 値を変更できない変数。 - const で変更されたデータ メンバーは、クラス コンストラクターまたは初期化リストでのみ初期化できます。
- const 変数はプログラムの実行中に変更できません。変更しないとコンパイル エラーが発生します。
- const は、オブジェクト、ポインター、または参照に適用できます。
-
static 修飾子:
static は、静的変数、つまりプログラム全体に存在する変数を宣言するために使用されます。 - 静的変数はプログラムの開始時に初期化され、プログラムの終了時に破棄されます。
- 静的変数は、ライブ オブジェクトがない場合でも存在し、関数間でアクセスできます。
- static は、グローバル変数、クラス メンバー変数、ローカル変数に適用できます。
-
その他の違い:
const で変更されたデータ メンバーは読み取り専用ですが、static で変更されたデータ メンバーは読み取りと書き込みが可能です。 - Const 変更されたローカル変数は宣言時に初期化する必要がありますが、静的に変更されたローカル変数は後で初期化できます。
- Const 変更されたクラス メンバー変数はコンストラクターまたは初期化リストで初期化する必要がありますが、静的に変更されたクラス メンバー変数はクラスの外部で初期化できます。
-
例:
<code class="cpp">// const 常量
const int MY_CONSTANT = 10;
// static 全局变量
static int global_count;
// static 类成员变量
class MyClass {
public:
static int static_member;
};</code>
ログイン後にコピー
上記の例:
MY_CONSTANT は定数であり、初期化すると変更できません。 - global_count は、プログラム全体に存在する静的なグローバル変数です。
- MyClass::static_member は、クラスの外部からアクセスできる静的クラス メンバー変数です。
-
以上がC++ における const と static の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。