すれ立てるまでもない質問はここで 第69刷
■ このスレッドは過去ログ倉庫に格納されています
0006デフォルトの名無しさん
2005/08/05(金) 18:12:17C言語を始めてみようとブックオフで10年以上前の100円の参考書を買いました。
その中の配列の初期化について次のように書かれていました。
auto変数は動的にメモリが確保されるので、配列の初期化を許すと
初期化のためのデータをメモリ上に常時保存しておくため、メモリの無駄使いとなる。
関数が起動され、メモリ確保が行われるたびに↑の保存データも配列にコピーすることになり、
余計な処理時間がかかる。
この初期化のためのデータというのはauto変数だと配列でなくてもメモリ上のどこかに
常に保存されているんですか?例えば
int a=60;
ならaという変数の領域をメモリ上に確保して、60というデータは別にメモリ上のどこかに
保存しておくという処理がされるというイメージでよろしいでしょうか?
もうひとつ、この理由から配列の初期化はstatic型で記述しろと書いてあるのですが、
現在はauto型でも配列の初期化が可能なのは何故でしょうか?
■ このスレッドは過去ログ倉庫に格納されています