回 帖 发 新 帖 刷新版面

主题:[讨论]关于过程的一个简单的小问题

程序非常简单如下:
program pro;
var  
 x:integer;
procedure Show(var a:integer);
begin
 a:=7;
 writeln('A is',a:2);
end;
{========== main ==========}
begin
 x:=5;
 writeln('X is',x:2);
 show(x);
 writeln('X is',x:2);
 readln
end.
运行结果:
X is 5
A is 7
X is 7  
我的问题是 Show(x)是什么意思?为什么不直接用Show? 第二个X的值为什么是7 而不是5呢~ 谢谢 。若详细回答既加30分~

回复列表 (共5个回复)

沙发

因为SHOW过程有一个参数a,所以在传递时也必须用一个参数。

至于第2个问题是这样的:

请观察PROCEDURE SHOW(VAR A: INTEGER);这句。这句里有一个VAR,证明A是变量参数,在A被重新赋值后,最后A的值仍然传给X,所以X就变成7了,若这句的VAR没有,第2个X的值仍然是5。

板凳

这是过程最基本的问题。

3 楼

这么来说你和我应该是用同一本教材了吧~~
仔细看一下书~~你会知道的

4 楼

非常感谢

5 楼

show(x);
意思是把x抓到show的过程中,把x变成怎么样,要看你的程序中的子程序show了

我来回复

您尚未登录,请登录后再回复。点此登录或注册