Cで初期化されたconst配列定義には長さパラメーターが必要ですか?

NikkyD
const int array[]  = {1,2};
const int array[2] = {1,2};

コンパイルも動作も問題ありません。これらに違いはありますか?

(私はCodevisionを使用していますが、それは実際には問題ではありません)

アルク

いいえ、違いはありません。

唯一の例外は、2番目のケースcharで、文字列リテラルを使用して配列を初期化し、配列のサイズが'\0'-terminatorを反映していない場合、後者は切り落とされます。

char s[] = "alk" // makes s 4 chars wide
char s[3] = "alk" // makes s 3 chars wide

他のすべてのタイプまたは種類の初期化の場合、コンパイラーは初期化子が大きすぎることを警告する必要があります。

イニシャライザーが配列よりも「小さい」場合、残りの要素は、グローバルスコープで定義されているかのように、つまり、であるかのように初期化されstaticます。

これはすべて、この文脈で何かがそうであるかどうかとは完全に無関係constです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

配列はCで定義されていますが、関数パラメーターとして渡すときに再度定義する必要がないのはなぜですか?

分類Dev

constのconst配列。配列の長さの定義でその要素を使用するか、テンプレートパラメータの値を指定します。

分類Dev

オブジェクトパラメーターとして指定された長さでメンバー配列を初期化する方法

分類Dev

String を取るように定義されたコンストラクターですが、メソッド呼び出しはエラー「配列タイプが必要です java.lang.String が見つかりました」を表示します

分類Dev

Angular8の初期化されたメンバー配列が未定義です

分類Dev

C ++でパラメーター化されたオブジェクトの配列を作成するにはどうすればよいですか?

分類Dev

Javaのパラメーター化されたコンストラクターに本体が必要ですか?

分類Dev

初期化時に長さが0の配列をオーバーライドすることは可能ですか?

分類Dev

株式が初期化されたときにその値が利用できるように、Excelからパラメータ配列を読み取るにはどうすればよいですか?

分類Dev

定義されたパラメータでネストされた定義c ++

分類Dev

カリー化された関数パラメーターを受け入れる関数を定義するにはどうすればよいですか?

分類Dev

初期化(パラメーター化)コンストラクターによって値が初期化されないのはなぜですか?

分類Dev

初期化された値をパラメータとして配列に渡す方法について説明する必要があります

分類Dev

phpは初期化されたパラメータでどのように動作しますか?

分類Dev

stack.yamlで定義された新しいデータベースパスを初期化するにはどうすればよいですか?

分類Dev

「charの配列の初期化文字列が長すぎる」がC ++ではなくCで正常にコンパイルされるのはなぜですか?

分類Dev

Objective Cのパラメータ化されたコンストラクタでNSDateを初期化する方法は?

分類Dev

パラメータ化されたクエリ.....には、パラメータ '@units'が必要ですが、指定されていません

分類Dev

パニックの原因:ランタイムエラー:配列が動的配列として初期化されているにもかかわらず、インデックスが長さ4の範囲[4]外です

分類Dev

モジュールで定義された派生型の配列をFortranが初期化する方法を理解する

分類Dev

文字列でインデックス付けされた配列エントリを取得するには、kubectljsonpathパラメータが必要です

分類Dev

date-pickerのbeforeShowDay関数の「date」パラメーターで初期化された値は何ですか?

分類Dev

初期化されていない変数を関数パラメーターリストに渡すことは明確に定義されていますか?

分類Dev

BoostSpiritのサブパーサーでパラメーター化されたパーサーを定義する

分類Dev

C ++は、ヘッダーで初期化された静的constメンバーが、コンパイルユニットとライブラリ間で単一のインスタンスを共有することを保証しますか?

分類Dev

Cの変数で定義された長さの配列は、どのようにしてメモリに格納されますか?

分類Dev

この方法で初期化されたchar配列には、nullターミネータが自動的に追加されますか?

分類Dev

Java-クラスのすべてのメソッドがコンストラクターで初期化された配列にアクセスできるようにするにはどうすればよいですか?

分類Dev

サブクラスのメソッド(パラメーター)に、実装されたインターフェースで定義された注釈があるかどうかを確認するにはどうすればよいですか?

Related 関連記事

  1. 1

    配列はCで定義されていますが、関数パラメーターとして渡すときに再度定義する必要がないのはなぜですか?

  2. 2

    constのconst配列。配列の長さの定義でその要素を使用するか、テンプレートパラメータの値を指定します。

  3. 3

    オブジェクトパラメーターとして指定された長さでメンバー配列を初期化する方法

  4. 4

    String を取るように定義されたコンストラクターですが、メソッド呼び出しはエラー「配列タイプが必要です java.lang.String が見つかりました」を表示します

  5. 5

    Angular8の初期化されたメンバー配列が未定義です

  6. 6

    C ++でパラメーター化されたオブジェクトの配列を作成するにはどうすればよいですか?

  7. 7

    Javaのパラメーター化されたコンストラクターに本体が必要ですか?

  8. 8

    初期化時に長さが0の配列をオーバーライドすることは可能ですか?

  9. 9

    株式が初期化されたときにその値が利用できるように、Excelからパラメータ配列を読み取るにはどうすればよいですか?

  10. 10

    定義されたパラメータでネストされた定義c ++

  11. 11

    カリー化された関数パラメーターを受け入れる関数を定義するにはどうすればよいですか?

  12. 12

    初期化(パラメーター化)コンストラクターによって値が初期化されないのはなぜですか?

  13. 13

    初期化された値をパラメータとして配列に渡す方法について説明する必要があります

  14. 14

    phpは初期化されたパラメータでどのように動作しますか?

  15. 15

    stack.yamlで定義された新しいデータベースパスを初期化するにはどうすればよいですか?

  16. 16

    「charの配列の初期化文字列が長すぎる」がC ++ではなくCで正常にコンパイルされるのはなぜですか?

  17. 17

    Objective Cのパラメータ化されたコンストラクタでNSDateを初期化する方法は?

  18. 18

    パラメータ化されたクエリ.....には、パラメータ '@units'が必要ですが、指定されていません

  19. 19

    パニックの原因:ランタイムエラー:配列が動的配列として初期化されているにもかかわらず、インデックスが長さ4の範囲[4]外です

  20. 20

    モジュールで定義された派生型の配列をFortranが初期化する方法を理解する

  21. 21

    文字列でインデックス付けされた配列エントリを取得するには、kubectljsonpathパラメータが必要です

  22. 22

    date-pickerのbeforeShowDay関数の「date」パラメーターで初期化された値は何ですか?

  23. 23

    初期化されていない変数を関数パラメーターリストに渡すことは明確に定義されていますか?

  24. 24

    BoostSpiritのサブパーサーでパラメーター化されたパーサーを定義する

  25. 25

    C ++は、ヘッダーで初期化された静的constメンバーが、コンパイルユニットとライブラリ間で単一のインスタンスを共有することを保証しますか?

  26. 26

    Cの変数で定義された長さの配列は、どのようにしてメモリに格納されますか?

  27. 27

    この方法で初期化されたchar配列には、nullターミネータが自動的に追加されますか?

  28. 28

    Java-クラスのすべてのメソッドがコンストラクターで初期化された配列にアクセスできるようにするにはどうすればよいですか?

  29. 29

    サブクラスのメソッド(パラメーター)に、実装されたインターフェースで定義された注釈があるかどうかを確認するにはどうすればよいですか?

ホットタグ

アーカイブ