久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Delphi

 佚名2016 2016-07-28
復(fù)制代碼
{       Delphi基本語法
1、對象
2、指針
3,、類型別名 和 類型轉(zhuǎn)換
}

program DelphiObject;

{$APPTYPE CONSOLE}

uses
  SysUtils;
type
    {       對象
    1,、對象通過關(guān)鍵字 class定義
    2,、對象可以看成是帶函數(shù)或者過程的記錄
    3,、對象通過 . 號引用對象的成員
    4,、這里簡單的介紹一下對象,,后面專門論述對象
    }
    TClass = class
        className:string;
    end;

    {       指針
    1,、Delphi中的通用指針類型為 Pointer
    2、指針可以通過Type 和 ^ 來定義一個新的數(shù)據(jù)類型
    }
    //定義一個指針數(shù)據(jù)類型 PInt;
    PInt = ^Integer;

    {       類型別名
    1,、Delphi中的類型別名類似于C語言中的typedef
    2,、通過關(guān)鍵字 type 定義類型別名
    3、語法格式為
            type
                類型別名 = 原類型名;
    4,、強(qiáng)類型別名,, 強(qiáng)類型別名將生成一種新的數(shù)據(jù)類型,與代表的原類型不是
    一種類型,,語法格式如下
            type
                強(qiáng)類型別名 = type 原類型名
    5,、強(qiáng)類型別名和原類型在函數(shù)或者過程的 Out 或 In 參數(shù)中是不同的類型,這
    需要注意,,其他時候是賦值兼容的,。
    }
    stronglyTypeInt = type integer;

var
    //定義指針變量
    pIntTest:PInt;
    PIntTest1:PInt;
    varInt:integer;

    pointerStr:string;

    {       無類型指針
    1、無類型指針通過 pointer 來定義
    }
    pointerNoType : Pointer;

    //定義強(qiáng)類型別名變量
    varStronglyInt:stronglyTypeInt;

begin
    {   指針操作
    1,、New()函數(shù)分配新的內(nèi)存空間,然后通過Dispose()釋放申請的空間
    2,、指針賦值給指針
    3、指針指向變量,通過 @ 操作符完成
    4,、引用指針變量指向的對象的值,, 通過 ^ 運(yùn)算符完成
    5、new()函數(shù)/Dispose()函數(shù)分配的指針,,又稱為動態(tài)指針,,可以根據(jù)數(shù)據(jù)類型
    自動確定內(nèi)存空間大小
    6、GetMem()函數(shù)/FreeMem()函數(shù)也能動態(tài)分配,,但是不能自動確定大小,需要手動
    指定大小
    }
    //  New()函數(shù)申請指針
    New(pIntTest);
    pointerStr := Format('%p',[pIntTest]);
    writeln(pointerStr);

    //指針變量賦值給指針變量
    pIntTest1 := pIntTest;
    //通過Format將指針格式轉(zhuǎn)化為字符串
    pointerStr := Format('%p',[pIntTest1]);
    writeln(pointerStr);

    //指針指向變量
    pIntTest1 := @varInt;
    //引用指針變量指向的值
    varInt := 10 ;
    //通過Format將指針解引用轉(zhuǎn)換化為字符串
    pointerStr := 'Reference varInt via pointer:' + Format('%d',[pIntTest1^]);
    writeln(pointerStr);

    pIntTest^ := 100;
    //通過Format將指針解引用轉(zhuǎn)換化為字符串
    pointerStr := Format('%d',[pIntTest^]);
    writeln(pointerStr);
    //釋放通過new()函數(shù)申請的空間
    Dispose(pIntTest);

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

    //無類型指針指向變量
    pointerNoType := @varInt;
    //無類型指針不能直接引用指向的變量
    // pointerNotype ^ := 23;  //錯誤
    //無類型指針需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換才能用,而且必須是指針類型才能轉(zhuǎn)換
    // integer(pointerNoType)^ := 23; 錯誤,, 因?yàn)?integer 類型不是指針類型
    PInt(pointerNoType)^ := 23;
    writeln(PInt(pointerNoType)^);


    //強(qiáng)類型別名定義的對象
    varStronglyInt := varInt;
    writeln(varStronglyInt);

    {   強(qiáng)制類型轉(zhuǎn)換
    1,、類型轉(zhuǎn)換的語法格式為
            類型名(表達(dá)式或者變量);
    }
    {
    PInt(pointerNoType)^ := 23;    語句先進(jìn)行強(qiáng)制類型轉(zhuǎn)換,, 將 pointerNoType
    強(qiáng)制轉(zhuǎn)換為 Pint類型,然后再 ^ 解引用,,最后進(jìn)行賦值
    }

    readln;
end.
復(fù)制代碼

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多