2

重複の可能性:
サイズが一定でない変数を使用して配列を宣言する

これは私のコードです:

const int xsize=150;
char Hey[xsize];

上記の定数を使用して新しい配列Heyを宣言できない理由がわかりません。誰かがこれを手伝うことができますか?

4

3 に答える 3

3

有効なC89コードではありません。変数がたまたまであっても、変数サイズの配列を宣言することはできませんconst

#defineあなたがそれをではなくとして持っていればそれはうまくいくでしょうconst int。ただし、C99では有効です。GCCおよびその他のコンパイラも、C89モードの拡張機能として提供しています。

于 2012-11-05T11:25:30.220 に答える
1

const定数を作成しないためです。読み取り専用オブジェクトを作成します。

オブジェクトと定数の違いは、オブジェクトには特定のメモリ位置が存在することです。定数はソースコードにのみ存在します。

于 2012-11-05T11:26:02.040 に答える
1

C89では、配列サイズは定数式である必要があります。const変数は定数式ではありません。これを行うには、C99のVLAを使用する必要があります。

于 2012-11-05T11:26:17.833 に答える