検索

ホームページ  >  に質問  >  本文

c++ - char* a[100]是什么意思?

是存放100个字符串的数组吗?

//通过
char* binary[100] = { "0", "00", "01", "10", "000", "001", "010", "011", "100",
        "101", "110" };
//出错
char* binary[10] = { "0", "00", "01", "10", "000", "001", "010", "011", "100",
        "101", "110" };

上面就不会出错,而下面就会出错,为什么?

高洛峰高洛峰2804日前1599

全員に返信(3)返信します

  • 大家讲道理

    大家讲道理2017-04-17 15:25:51

    はポインターの配列です。
    配列内の各要素は char* 型で、それぞれ各文字列の最初のアドレスを指します。
    次の配列要素には 10 個を超える要素があります。

    返事
    0
  • 黄舟

    黄舟2017-04-17 15:25:51

    リーリー


    エラー C2078: 初期化子が多すぎます
    このエラーは、初期化コンテンツが多すぎることです。これは、宣言した長さが 10 で、初期化コンテンツに 11 個のコンテンツがあるためです。初期化すると、配列が範囲外になるためコンパイルできません。ただし、100>11 であるため、2 行目はコンパイルして渡すことができます。
    変更

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 15:25:51

    簡単に言うと、コードは char 型の 2 次元配列を生成します。最初の次元は 10 で、2 番目の次元は任意の長さ (char[10][]
    ) です。したがって、以下のプログラムは次のようになります。 1 つの次元の長さが 10

    を超える場合、エラーが報告されます。

    返事
    0
  • キャンセル返事