-7
begin
integer n;
procedure p(k: integer);
begin
print(n);
end;
n := 5;
p(n/0);
end;
输出: 呼叫由值:除以零误差 呼叫按名称:过程的第5为什么按名称调用在下面的代码中不会给出错误为零除?
begin
integer n;
procedure p(k: integer);
begin
print(n);
end;
n := 5;
p(n/0);
end;
输出: 呼叫由值:除以零误差 呼叫按名称:过程的第5为什么按名称调用在下面的代码中不会给出错误为零除?
参数P是整数,但是当你与N/0,称之为n/0类型是真实的,即不兼容。
而在Pascal中,您无法在开始结束之间创建新程序。
(代码如下混合C和帕斯卡)
对不起我的英语:(
这看起来像帕斯卡尔,不C. – dbush
论值呼叫的呼叫,参数前执行函数,所以'n/0'在调用'p'之前被执行,它被零除。在通过名字调用的一个调用中,参数是** delayed **,并且,因为它在p中不会被使用''打印'n',而不是参数'k'),那么除法不会发生,并且不会出现错误。此外,这不是C. – paulotorrens
您是说代码编译?在哪个Pascal编译器中? – MartynA