关于Delphi地址和指针的问题(很幼稚的问题...唉)
我是想用地址指针实现点击Button1,通过aaa过程把bbbb赋值给edit1.Text
好像和“@”“^”有关系,但我不会用,就是怎样地址赋值?
下面的怎么不对呢?
procedure TForm1.Button1Click(Sender: TObject);
var
str : string;
begin
str := 'aaaaa';
aaa(@str);
edit1.Text := str;
end;
procedure TForm1.aaa(s:^string);
begin
s := 'bbbb';
end;
[解决办法]
注意,在Delphi中声明负责类型(^T, array[0..1] of T ...),当声明的位置不一致时会被当成不同的类型处理
参考如下代码
- Delphi(Pascal) code
var a: ^string; b, c: ^string;begin b := nil; b := c; // ok a := b; // errorend;
[解决办法]
任何数据都是存储在内容的
@就是得到数据存放的内存位置
@相当于Addr()函数
而^就是指该内存位置存储的内容
[解决办法]
任何数据都是存储在内存中