以下は合法ですか?
const int n=10;
static int array[n];
はいの場合、なぜ、どのように?
const int n=10;
static int array[n];
このコードではエラーが発生します:
'array' のストレージ サイズは定数ではありません static int array[n]; ^
静的メモリ割り当ては、実行時に必要に応じてメモリが割り当てられる動的メモリ割り当てまたは自動メモリ割り当てとは異なり、関連するプログラムが実行される前にコンパイル時にメモリを予約するプロセスを指します。
const
C では、その変数をコンパイル時に使用可能にしないでください。
次のようなステートメントでは、そのエラーは生成されません。
static int array[10];
したがって、あなたが書いたステートメントは違法であるか、プログラムのコンパイル中にエラーが発生します。