以下是两个函数:
函数一:
function read(var outStr:string):integer;
var
f:string;
begin
f:=’assssssssqqqqqqq’
outStr :=f;
result:= 1;
end;
函数二:
procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
b:integer;
begin
a:=' ';
b:=read(a);
end;函数二调用了函数一之后,a的返回值为空。请问如何能让a正确的返回函数一中赋过的值。如果a要接收100个字符,而a的初始化 a:=' ' 会不会影响 它对这100个字符的接收。
函数一:
function read(var outStr:string):integer;
var
f:string;
begin
f:=’assssssssqqqqqqq’
outStr :=f;
result:= 1;
end;
函数二:
procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
b:integer;
begin
a:=' ';
b:=read(a);
end;函数二调用了函数一之后,a的返回值为空。请问如何能让a正确的返回函数一中赋过的值。如果a要接收100个字符,而a的初始化 a:=' ' 会不会影响 它对这100个字符的接收。
解决方案 »
- 怎样自动更新程序?
- 请教一个关于完成端口的连接请求时候的验证问题
- 关于删除文件的问题,这分都跟白送是一样的!
- vc写的dll在delphi中调用,(数据类型的难题)100
- 在delphi中的DBGrid中怎样得到某一行的一个字段的值?
- 控件问题.如何做到再程序运行的选中控件让控件的周围显示一个8个黑点的矩形,就是和设计的时候一样那个8个黑色小矩形围城的大矩形
- 【求TntClasses文件 有的mail我】
- 在DELPHI操作ORACLE中使用ADOQUERY.EXCESQL之后要不要执行COMMIT?
- 怎么手动存储TFont私有变量到dfm中。
- 请教哪里有介绍Delphi的学习网站?
- 简单问题:STRINGGRID 判断是否有空格,增加行数
- 散尽积分,只求inno答案
function GetString(var OutString :string):integer;
var
Temp :string;
begin
Result := 0;
Temp := 'My function OutString !';
OutString := Temp;
Result :=Length(Temp);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
S :string;
R :integer;
begin
S := ' ';
R := GetString(S);
Showmessage(S+' Return string length is :'+IntToStr(R));
end;end.
本人的代码,运行后Showmessage显示出:My function Outstring ! Return string length is : 23
function read(var outStr:string):integer;
var
f:string;
begin
f:=’assssssssqqqqqqq’ //缺少了";"号。
outStr :=f;
result:= 1;
end;
缺一个分号,编译时会报错吧。
函数一:
function read(var outStr:string):integer;
begin
outStr:=’assssssssqqqqqqq’
result:= 1;
end;procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
b:integer;
begin
a:=' ';
b:=read(a);
showmessage(a);//肯定会是’assssssssqqqqqqq’了
showmessage(IntToStr(b));//肯定是1
end;
你代码里可没c啊
你什么时候观察的?你在执行完调用read函数的代码后再观察呢?不用怀疑,错不了。
函数二:
procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
b:integer;
begin
a:=' ';
b:=read(a);
end;
在调用了 read函数之后,再没有使用过a,因此a被系统优化了
如果你的断点在 end; 这条语句上,你会发现 a 本身的值是0 (Integer(a));也就是空串。
这是编译系统优化的结果