Delphi_05_Delphi_Object_Pascal_기본 구문03

7873 단어
델피의 학습 여행을 계속하고 쓸데없는 말은 하지 않고 코드를 직접 붙인다.
{       Delphi    
1、  
2、  
3、           
}

program DelphiObject;

{$APPTYPE CONSOLE}

uses
  SysUtils;
type
    {         
    1、        class  
    2、                 
    3、     .         
    4、           ,        
    }
    TClass = class
        className:string;
    end;

    {         
    1、Delphi          Pointer
    2、      Type   ^            
    }
    //           PInt;
    PInt = ^Integer;

    {           
    1、Delphi         C    typedef
    2、      type       
    3、     
            type
                     =     ;
    4、     ,                 ,         
        ,      
            type
                      = type     
    5、                  Out   In          , 
        ,          。
    }
    stronglyTypeInt = type integer;

var
    //      
    pIntTest:PInt;
    PIntTest1:PInt;
    varInt:integer;

    pointerStr:string;

    {            
    1、        pointer    
    }
    pointerNoType : Pointer;

    //         
    varStronglyInt:stronglyTypeInt;

begin
    {       
    1、New()          ,    Dispose()       
    2、       
    3、      ,   @      
    4、             ,    ^      
    5、new()  /Dispose()       ,       ,        
              
    6、GetMem()  /FreeMem()        ,          ,    
        
    }
    //  New()      
    New(pIntTest);
    pointerStr := Format('%p',[pIntTest]);
    writeln(pointerStr);

    //           
    pIntTest1 := pIntTest;
    //  Format           
    pointerStr := Format('%p',[pIntTest1]);
    writeln(pointerStr);

    //      
    pIntTest1 := @varInt;
    //          
    varInt := 10 ;
    //  Format             
    pointerStr := 'Reference varInt via pointer:' + Format('%d',[pIntTest1^]);
    writeln(pointerStr);

    pIntTest^ := 100;
    //  Format             
    pointerStr := Format('%d',[pIntTest^]);
    writeln(pointerStr);
    //    new()       
    Dispose(pIntTest);

    // GetMem()   FreeMem()
    GetMem(pIntTest,sizeof(integer));
    pIntTest^ := 56;
    writeln(pIntTest^);
    FreeMem(pIntTest, sizeof(integer));

    //         
    pointerNoType := @varInt;
    //                
    // pointerNotype ^ := 23;  //  
    //                  ,             
    // integer(pointerNoType)^ := 23;   ,    integer         
    PInt(pointerNoType)^ := 23;
    writeln(PInt(pointerNoType)^);


    //          
    varStronglyInt := varInt;
    writeln(varStronglyInt);

    {         
    1、          
               (       );
    }
    {
    PInt(pointerNoType)^ := 23;               ,   pointerNoType
          Pint  ,    ^    ,      
    }

    readln;
end.

 
전재를 환영합니다. 전재는 출처를 밝혀 주십시오.

좋은 웹페이지 즐겨찾기