ホームページ > バックエンド開発 > C++ > C および C で中括弧を使用して配列はどのように初期化されますか?

C および C で中括弧を使用して配列はどのように初期化されますか?

DDD
リリース: 2024-12-13 02:41:10
オリジナル
293 人が閲覧しました

How Are Arrays Initialized with Braces in C and C  ?

中括弧を使用した配列の初期化: コンパイラーの動作を明らかにする

プログラミングでは、array[100] = など、中括弧を使用して配列を代入します。 {0} では、値が内部でどのように初期化されるかについて疑問が生じます。この表記の背後にある魔法を詳しく見てみましょう。

マジックですか、コンパイラ ロジックですか?

一般的な認識に反して、魔法は関係しません。このコードの動作は、プログラミング言語仕様によって制御されます:

C 仕様 (セクション 6.7.8.21): 指定されていない配列要素の場合、ポインターは NULL に初期化され、算術型 (char を含む) ) はゼロに設定されます。

C 仕様 (セクション8.5.1.7): 未指定の配列要素は集約初期化されます。

C の空の初期化子リスト: C は、array[100] = {}; のような空の初期化子リストをサポートします。のすべての要素を集約初期化します。 array.

コンパイラ生成コード: 通常、コンパイラは、配列の各要素を指定された値に設定するコードを生成します。ただし、コンパイラと最適化設定によっては、コードが異なる場合があります。

コンパイラの動作の詳細については、関連する質問「配列 0 からの奇妙なアセンブリ」の空の初期化子リストに対して生成されたアセンブリ コードを参照してください。 -初期化。"

以上がC および C で中括弧を使用して配列はどのように初期化されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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