ホームページ >バックエンド開発 >C++ >C でデフォルト値を割り当てると、一部の配列要素がゼロに初期化されるのはなぜですか?

C でデフォルト値を割り当てると、一部の配列要素がゼロに初期化されるのはなぜですか?

DDD
DDDオリジナル
2024-12-27 20:30:11626ブラウズ

Why are Some Array Elements Initialized to Zero When I Assign a Default Value in C  ?

C のデフォルト値による配列要素の初期化

質問:

初期化はなぜ行われるのですか以下の構文を使用してゼロ以外の値を含む配列を使用すると、一貫性が失われます。値?

int array[100] = {-1};

答え:

質問に記載されている構文を使用して、

int array[100] = {-1};

最初の要素を指定された値に初期化します。 (-1) を指定し、残りの要素をデフォルトで 0 に設定します。すべての要素を -1 に初期化するには、:

std::fill_n(array, 100, -1);

の std::fill_n 関数を利用できます。C コードの場合、すべての要素を明示的に初期化するには手動ループが必要です。コンパイラ拡張機能または実装定義の動作によってショートカットが提供される場合がありますが、移植性を考慮すると、これらに依存することはお勧めできません。

初期化速度について:

デフォルトの初期化方法は通常、ループを使用して各要素を明示的に初期化するよりも高速です。ただし、大規模な配列を処理しない限り、パフォーマンスの違いは通常は無視できます。

以上がC でデフォルト値を割り当てると、一部の配列要素がゼロに初期化されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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