10
次のコードを考えてみましょう:それは私の驚きにコンパイル(どうやら私も、私が思ったように、Cの文法を知らない)と、次のエラーを生成しません
char *hi = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
を:
error: initializer element is not constant
私は[]のcharにchar *型を変更した場合
それが正常にコンパイルされます。
char hi[] = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
は、誰かがなぜ私に説明できますか?
ありがとうございました。 constキーワードを使用してコードの第1部分を動作させる方法はありますか? – lang2
@ lang2その範囲にはありません。この[C FAQ](http://c-faq.com/ansi/constasconst.html)を参照してください。 'char * const hi'(charへの定数ポインタ)でさえもありません。 – cnicutar
ちょっとしたことが追加されました。 'うまくいくかどうかわかりません。最初のバージョンはC++でOKです.-瞬間が来たらCコンパイラで試してみます:) – icabod