ホームページ > バックエンド開発 > C++ > C/C で `array[100] = {0};` は配列全体をゼロに初期化するにはどうすればよいですか?

C/C で `array[100] = {0};` は配列全体をゼロに初期化するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-11 00:15:10
オリジナル
606 人が閲覧しました

How Does `array[100] = {0};` Initialize an Entire Array to Zero in C/C  ?

配列[100] = {0} の背後にある魔法を理解する;初期化

C/C コード スニペット array[100] = {0} に遭遇したとき、開発者はコンパイラがどのようにしてすべての配列要素を簡単にゼロに初期化するのか疑問に思うかもしれません。

コンパイラの初期化メカニズム

この動作は難解な魔法ではありませんが、むしろ、C および C 仕様の明確に定義された側面です。

C では

C 仕様のセクション 6.7.8.21 に従って、配列内の初期化されていない要素は次のように初期化されます:

  • ポインターは次のように設定されます。 NULL.
  • 算術型 (int に昇格される文字を含む) はゼロに初期化されます。

これは、入れ子になった配列と構造体に再帰的に適用されます。

C 内

のセクション 8.5.1.7 C 仕様では、配列内の初期化されていない要素は集合的に初期化されると規定されています。集約初期化では、要素の値がデフォルト値 (文字の場合はゼロ) に初期化されます。

空の初期化子リスト

C では、空の初期化子リスト配列を使用することもできます。 [100] = {};すべての配列要素の集約初期化をトリガーします。

コンパイラ アセンブリ出力

コンパイラによって生成される特定のアセンブリ コードは、特定の実装に基づいて異なる場合があります。ただし、通常、配列の一部を初期化し、初期化された値を残りの要素にコピーする必要があります。

以上がC/C で `array[100] = {0};` は配列全体をゼロに初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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