参数的改变(100分)

  • 主题发起人 主题发起人 Azalea
  • 开始时间 开始时间
A

Azalea

Unregistered / Unconfirmed
GUEST, unregistred user!
function f1
var
n1: integer;
str1, str2, str3, str4: string;
begin
...
str2 := f2(str1);
str3 := f2(str1);
str4 := f2(str1);
end;

function f2(str: string): integer;
begin
...
end;

函数f2中如何更改f1的变量str1的值(即f2的参数)?
 
把f2中的参数声明为var 就行
function f2(var str: string): integer
 
全局变量?
 
wo cow
100分
我来晚了(痛哭)
同意xueminliu
 
仔细看一下pascal语法就可以解决,花100分,很大方
 
还有一个大问题!!!
str2,str3,str4都是string,而f2是integer,因此

str2 := f2(str1);
str3 := f2(str1);
str4 := f2(str1);

全部都是错误的!!! 应该这样:

function f2(var str:string):string;

在这里,str是变参,当调用f2(str1)时,传给str的是str1的地址,
因此,在f2中改变str的值就相当于在改变str1的值;
而当function f2(str:string):string;时,传给str的是str1的值,
因此,在f2中改变str的值,不会影响str1的值.
懂了吗?(pascal的基础很重要哦)
 
多人接受答案了。
 
后退
顶部