回 帖 发 新 帖 刷新版面

主题:[讨论]请问过程或函数后面的参数是什么意思??

帮忙呀!+++++++30[em5]

回复列表 (共9个回复)

沙发

比如var a,b:integer;
function jia(a,b:integer):integer;
begin
  jia:=a+b;
  b:=a+b;
end;
begin
a:=1;b:=2;
writeln(jia(a,b));
writeln(a);writeln(b);
end.

出来是3
      1
      2
如果是var a,b:integer;
function jia(var a,b:integer):integer;
begin
  jia:=a+b;
  b:=a+b; 
end;
begin
a:=1;b:=2;
writeln(jia(a,b));
writeln(a);writeln(b);
end.
出来是3
      1
      3


板凳

能请贺天行宝在讲的详细些吗?我还是没看懂

3 楼

可以说那些数就是要在函数或过程中处理的(或有用)数,加了var后,如果在函数或过程中,改变了他们,在主程序中也会改变。
反之,主程序中还是调用之前的
这个自己试试吧,讲很难讲清楚地

4 楼

能再说详细点吗?
我还是不太懂诶!!

5 楼

[quote]比如var a,b:integer;
function jia(a,b:integer):integer;[/quote]
这个是值参数,他的值的改变不会影响对应的实在参数的值
begin
  jia:=a+b;
  b:=a+b;
end;
begin
a:=1;b:=2;
writeln(jia(a,b));
writeln(a);writeln(b);
end.
出来是3
      1
      2
[quote]如果是var a,b:integer;
function jia(var a,b:integer):integer;[/quote]
这个是变量参数,函数中对它的运算实际上是对实在参数的运算
begin
  jia:=a+b;
  b:=a+b; 
end;
begin
a:=1;b:=2;
writeln(jia(a,b));
writeln(a);writeln(b);
end.
出来是3
      1
      3
[/quote]
天行宝,我说的对吧
[em16][em13]

6 楼

变参的值是不是和传过去变量的值一样?
呢值参是什么意思??

7 楼

[quote]变参的值是不是和传过去变量的值一样?[/quote]

[quote]呢值参是什么意思??[/quote]
"值参数"是形式参数的一种,另一种形式参数是"变量参数".
这个回答是正确的,不用向天行宝求证了
[em15]

8 楼

得分了,呵呵
[em2]
有些受之有愧

我也初学,比"贺天行宝"要差很多.
大家共同进步!

9 楼

谢谢,我们当然要共同进步啦~!!
顺便问一下,值参的值又等于什么呢?

我来回复

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