0

最近、C でプログラミングを始めましたが、誤って配列を '-1' に指定すると、配列が最後の要素に移動することがあることに気付きました。なぜこれが起こるのですか?

編集:例として、私は森林火災モデルを構築していました.時々、燃えている木が森の端にあったとき、エラーをスローすることなく、新しい燃えている木が森の反対側に現れました.

4

2 に答える 2

6

これは未定義の動作です。
コンパイラは、鼻から悪魔を飛ばすことができます

実際には、これは通常、アレイの前にメモリにアクセスすることになり、クラッシュする可能性があります。

于 2013-04-14T02:12:46.803 に答える
2

彼らはしません。C は、配列の外に出ていることをチェックしないだけです。その場合、結果は予測できません。このサイトを見て、リンクされているチュートリアルをチェックしてください(古いですが、良いです)。C のポインターと配列に関するチュートリアルへのリンクもあります。

C は最大のパフォーマンスを発揮するように設計された言語であるため、プログラマーが何をしているかを正確に理解していることを前提としています。補助輪も安全ネットもありません。これに慣れると解放されます。それまで恐るべし。それを続けて、何が起こっているのかを理解し、楽しんでください。

于 2013-04-14T02:17:09.643 に答える