Delphi 基础回顾

有很多东西,不经常使用,都忘记了,哈哈!做个记录!

 

1.packed record 中 packed 的作用

   packed   表示 record 中数据的对齐方式,默认情况下,Delphi每次分配4字节的内存,及时声明的类型,不需要使用4字节,也是按4字节分配,加上packed后,按实际大小分配,占用内存小,但是速度慢。

 

2.Delphi中的指针 “^”和“@”符号的使用

   a.声明指针: var PInteger : ^Integer;

   b.通过指针,调用对应的值: var p :PInteger;  应使用 p^

   c.将对象的值赋给指针需要取地址:pstr := @ObjectVar

 

3.delphi中String,PChar,PByte,Array of Char,Array of Byte的转换方法

   var s:string; pc:pchar; pb:pbyte; ac:array[1..100] of char; ab:array[1..100] of byte; i:integer; begin s:='this is a test'; pc:=pchar(s); //string->pchar pb:=pbyte(pc); //pchar->pbyte for i:=1 to length(s) do begin ac[i]:=s[i]; //string->arrary of char ab[i]:=byte(s[i]); //string->arrary of byte end; s := pc; //pchar->string s := string(pb); //pbyte->string s :=ac; //arrary of char->string; end;

 

4. s:   string   =   'CSDN';  
    则有PChar(s)^   =   'C',(PChar(s)+1)^='S',……(PChar(s)+4)^=#0。  
    且:PInteger(Integer(Pointer(s))-1*sizeof(DWORD))^=length(s)  
    和:PInteger(Integer(Pointer(s))-2*sizeof(DWORD))^=refcount(s)  

你可能感兴趣的:(Delphi,函数)