类型转换Delphi十分简单,不过我不明白

来源:百度知道 编辑:UC知道 时间:2024/05/27 13:45:01
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils,Dialogs;
var
i:integer;
begin
i:=1;
ShowMessage(string(i));

end.

为何这样不OK?
必须要IntToStr?
强制转换为啥不行......

这个问题还真有点不好解释,整型变量在内存中占四个字节,你调IntToStr的时候,编译器会认为这四个字节的内存里存的数据是整型的,并帮你转成字符串.当强制转成String时,因为String实质是一个指针,编译器会认为那四个字节表示的数是字符串实际内容所在内存的地址,并且试图去访问它,因此会出错.不知道这样说得明白没有

var
i:integer;
begin
i:=1;
ShowMessage(inttostr(i));

end.

强制类型转换 尤其是string类型,需要注意.
一般string来强制类型转换 主要用在 将数组转换成 字符串.
比如我有个字节数组(96,96,96,96).
我用string强制类型转换 就是'aaaa';
还有就是pchar 这种 以0结尾的C语言形式的字符串,也可以用string强制转换成pascal字符串.