2017-05-29 37 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'之前被执行,它被零除。在通过名字调用的一个调用中,参数是** delayed **,并且,因为它在p中不会被使用''打印'n',而不是参数'k'),那么除法不会发生,并且不会出现错误。此外,这不是C. – paulotorrens

+0

您是说代码编译?在哪个Pascal编译器中? – MartynA

回答

-1

参数P整数,但是当你与N/0称之为n/0类型是真实的,即不兼容。

而在Pascal中,您无法在开始结束之间创建新程序。

(代码如下混合C和帕斯卡)

对不起我的英语:(

相关问题