2017-05-29 3 views
-7
begin 
integer n; 
procedure p(k: integer); 
    begin 
    print(n); 
    end; 
n := 5; 
p(n/0); 
end; 

出力:値によって コール:手順5名前でコールすると、次のコードでゼロで割るとエラーが発生しないのはなぜですか?

+6

これは、パスカルのように見える、ではない値の呼び出しによって呼び出しでC. – dbush

+1

は、パラメータが前に実行されます関数であるため、 'n/0'は' p'を呼び出す前に実行され、0で割り切れます。 'n'で、パラメータ 'k'ではない)を出力すると、除算は決して起こらず、エラーは発生しません。また、これはCではありません。 – paulotorrens

+0

Pascalコンパイラでは? – MartynA

答えて

-1

パラメータP整数ですが、N/0でそれを呼び出すとき、:名前によってゼロエラー コール除算n/0のタイプは実数で、互換性はありません。

パスカルでは、begin endの間に新しいプロシージャを作成できません。

(あなたのコードは、CとPascalの混合のように見える)私の英語については申し訳ありません

:(

関連する問題