日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DELPHI参数几个概念上的区别 收藏

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DELPHI参数几个概念上的区别 收藏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DELPHI參數幾個概念上的區別 收藏
?引用參數:

引用參數用var關鍵字標示

procedure DoubleTheValue (var Value: Integer);
begin
? Value := Value * 2;
end;在這種情況下,參數既把一個值傳遞給過程,又把新值返回給調用過程的代碼。當你執行完以下代碼時:

var
? X: Integer;
begin
? X := 10;
? DoubleTheValue (X);x變量的值變成了20,因為過程通過引用訪問了X的原始存儲單元,由此改變了X的初始值 在C++中, 引用用&表示

值得注意的是:

Delphi 3增加了一種新的參數:out。out參數沒有初始值,只是用來返回一個值。out參數應只用于COM過程和函數,一般情況下最好使用更有效的var參數。除了沒有初始值這一點之外,out參數與var參數相同。

常量參數

和C++一樣,用CONST關鍵字表示

function DoubleTheValue (const Value: Integer): Integer

編譯器會選用一種與引用參數相似的方法編譯常參(C++術語中的常量引用),但是從表面上看常參又與值參相似,因為常參初始值不受例程的影響。

開放數組參數

與C語言不同,Pascal 函數及過程的參數個數是預定的。如果參數個數預先沒有確定,則需要通過開放數組來實現參數傳遞。

一個開放數組參數就是一個固定類型開放數組的元素。 也就是說,參數類型已定義,但是數組中的元素個數是未知數。

function Sum (const A: array of Integer): Integer;類型變化的開放數組參數

除了類型固定的開放數組外,Delphi 還允許定義類型變化的甚至無類型的開放數組。這種特殊類型的數組元素可隨意變化,能很方便地用作傳遞參數。

技術上,array of const 類型的數組就能實現把不同類型、不同個數元素組成的數組一下子傳遞給例程

function Format (const Format: string; const Args: array of const): string;N := 20;
S := 'Total:';
Label1.Caption := Format ('Total: %d', [N]);
Label2.Caption := Format ('Int: %d, Float: %f', [N, 12.4]);
Label3.Caption := Format ('%s %d', [S, N * 2]);

但我們往往會遇到這樣的問題:

在FUN()中傳入 var a: array of integer 參數之后
不能在函數里SetLength(a,num);

所以我們把參數設為動態數組類型

type

tarrayofinteger = array of integer;

procedure grow( var data: tarrayofinteger );

begin

setlength( data, length(data) ,?? 新長度 );

// 動態數組作為參數可以改變數組大小。

end;

參考BLOG:

http://hi.baidu.com/broland/blog/item/0ab119f516b4ade57609d75c.html

參考文獻:

<PASCAL精要>


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jqandjq/archive/2010/03/02/5339123.aspx

總結

以上是生活随笔為你收集整理的DELPHI参数几个概念上的区别 收藏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。