[考题]如何修改函数中常量参数的值
function f(const Param: Integer): Integer;
begin
{ TODO : 实现 Param = 1234 }
Result := Param;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := IntToStr(f(1000)); // 1234
end;
问题点数:17、回复次数:9Top
1 楼vividw(vividw)回复于 2006-11-16 11:12:46 得分 7
var
p:PInteger;
p:= @Param;
p^:=1234;Top
2 楼do2008(aiGooo·闲来吹吹牛,不亦乐乎)回复于 2006-11-16 11:15:50 得分 7
function f(const Param: Integer): Integer;
var
P:^integer;
begin
{ TODO : 实现 Param = 1234 }
P := @Param;
P^ := 1234;
Result := Param;
end;Top
3 楼zswang(伴水清清)(专家门诊清洁工)回复于 2006-11-16 11:26:01 得分 0
1楼、2楼正确
function f(const Param: Integer): Integer;
begin
{ TODO : 实现 Param = 1234 }
PInteger(@Param)^ := 1234;
Result := Param;
end;
总结:语法是可以驾驭的,别被语法限制了思维
不同高级语言编译后都是一样的机器指令,语法只是编译器和程序员交互用Top
4 楼zswang(伴水清清)(专家门诊清洁工)回复于 2006-11-16 11:40:51 得分 0
//再看一招:
procedure TForm1.Button1Click(Sender: TObject);
begin
PPointer(@Self)^ := Button1;
Caption := 'Zswang';
end;Top
5 楼vividw(vividw)回复于 2006-11-16 11:42:13 得分 1
似乎再哪里看过...Top
6 楼ccrun(老妖)(www.ccrun.com)回复于 2006-11-16 11:43:56 得分 1
好。支持一哈。Top
7 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2006-11-16 11:46:36 得分 1
玩得下哦~Top
8 楼kjiwu(阿磊)回复于 2006-11-16 15:09:32 得分 0
各位高人,新手向大家请教,看看我理解的对不对,指针我不太会;
P^ := 123;就是直接更改的PARAM的内存地址中的值对吧,所以以后不论赋什么值都是"123"对吧!
谢谢高手赐教先!
Top
9 楼zswang(伴水清清)(专家门诊清洁工)回复于 2006-11-16 15:35:17 得分 0
to kjiwu:你理解对,就是修改指针指向的地址中存储的值
var
A: Char;
B: Byte;
begin
A := Char(B); // 计算机里是没有语法中所谓的类型,对于计算机来说就是0和1
// 如果两个变量的存储空间相同,那就可以互相直接转换了
end;Top




