ホームページ >バックエンド開発 >C++ >C および C では、配列の初期化によって配列がどのようにゼロで埋められるのでしょうか?

C および C では、配列の初期化によって配列がどのようにゼロで埋められるのでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-01 12:43:10215ブラウズ

How Does Array Initialization Fill Arrays with Zeros in C and C  ?

配列の初期化で配列をゼロで埋める方法

char array[100] = {0} のような配列の初期化では、むしろ単純なメカニズムが採用されています。

セクションによると、C ではC 仕様の 6.7.8.21 では、コンパイラは、未定義の配列要素に対してポインタを NULL に割り当て、算術型をゼロに割り当てます。このプロセスは集合体に再帰的に適用されます。

C では、C 仕様のセクション 8.5.1.7 で、コンパイラが未定義の配列要素を集合体初期化することが規定されています。

さらに、C では空の初期化子リスト オプションが提供されています。 、char array[100] = {}、すべての配列の集合体初期化をトリガーします。

このような状況でコンパイラによって生成されたコードについて詳しく知るには、質問「配列 0 の初期化からの奇妙なアセンブリ」の説明を参照してください。

以上がC および C では、配列の初期化によって配列がどのようにゼロで埋められるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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