2012-02-19 8 views

答えて

4

最高の理由は、言語ごとに、ゼロ除算は未定義の動作であるため、何かが起こる可能性があるということです。クラッシュは、バグを捕まえるのに役立つので、プログラマーにとって最も有用な「何か」です。

なぜC++言語が0で除算されたのかは未定義ですが、これはおそらくCと同じで、(1)数学的定義がなく、(2)有効なプログラムで除算を0にする必要はないので、すべてのプラットフォームで共通の動作を強制するために、各部門の周りにエミュレーション/パッチアップレイヤーを追加する価値はありません。

0

0による除算はです。数学的にはは未定義で、C++やその他の言語とは関係ありません。

+3

-1:一部の言語では、クラッシュのない方法で 'x/0'が定義されます(必要ならJavascriptを試してください)。どんな場合でも、それは演算子が何をするかを定義する言語なので、これはプログラミングする言語とすべて関係します。 –

+0

@trinithis何ですか?私はクラッシュについて** **何も言わなかった。ゼロによる除算は数学的には定義されていないと言いました(これは真です)。私が知っているすべてのプログラミング言語は、それが未定義であると評価されます(直接的にそのように命名されるか、または数学的には未定義の+/- inf)。 –

+0

さて、それでも、OPの質問に答えるのに近いわけではありません。 (私の最初のコメントの最後の文は、とにかく関連するものです。) –