- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi指针长度
要点:
1.指针指向的内容的大小因数据类型的不同而不同,指针本事的大小,都是4字节
2.sizeof函数是取形参所占的内存大小
3.IntToHex是把整数型的值,转换为16进制的值,第二个参数是16进制的长度为多少位
program MyPoint; //指针详解
{$APPTYPE CONSOLE}
uses
SysUtils,windows,Generics.Collections ;
{指针长度}
procedure MyFunc3();
var
MyInt : Integer;//整数
MyPoint : PInteger; //定义指针
MyByte : Byte;
MyPintByte : PByte;
begin
MyInt := 2;
MyByte := 3;
{byte型和integer型的指针}
MyPoint := @MyInt;
MyPintByte := @MyByte;
{输出2者地址}
Writeln('MyPoint :' + IntToHex(Integer((MyPoint)),8));
Writeln('MyPintByte :' + IntToHex(Integer((MyPintByte)),8));
Inc(MyPoint);
Inc(MyPintByte);
{调用Inc之后byte和integer地址一个多1,一个多4}
Writeln('MyPoint :' + IntToHex(Integer(MyPoint),8));
Writeln('MyPintByte :' + IntToHex(Integer(MyPintByte),8));
{byte和integer指针取自身长度都是4}
Writeln('SizeOf(MyInt):'+IntToStr(SizeOf(MyInt))+' SizeOf(MyPoint):'+IntToStr(SizeOf(MyPoint)));
Writeln('SizeOf(MyByte):'+IntToStr(SizeOf(MyByte))+' SizeOf(MyPintByte):'+IntToStr(SizeOf(MyPintByte)));
end;
{main主函数}
begin
MyFunc3();
Readln;//回车退出
end.