DELPHI参数几个概念上的区别 收藏
DELPHI參數(shù)幾個概念上的區(qū)別 收藏
?引用參數(shù):
引用參數(shù)用var關鍵字標示
procedure DoubleTheValue (var Value: Integer);
begin
? Value := Value * 2;
end;在這種情況下,參數(shù)既把一個值傳遞給過程,又把新值返回給調(diào)用過程的代碼。當你執(zhí)行完以下代碼時:
var
? X: Integer;
begin
? X := 10;
? DoubleTheValue (X);x變量的值變成了20,因為過程通過引用訪問了X的原始存儲單元,由此改變了X的初始值 在C++中, 引用用&表示
值得注意的是:
Delphi 3增加了一種新的參數(shù):out。out參數(shù)沒有初始值,只是用來返回一個值。out參數(shù)應只用于COM過程和函數(shù),一般情況下最好使用更有效的var參數(shù)。除了沒有初始值這一點之外,out參數(shù)與var參數(shù)相同。
常量參數(shù)
和C++一樣,用CONST關鍵字表示
function DoubleTheValue (const Value: Integer): Integer
編譯器會選用一種與引用參數(shù)相似的方法編譯常參(C++術語中的常量引用),但是從表面上看常參又與值參相似,因為常參初始值不受例程的影響。
開放數(shù)組參數(shù)
與C語言不同,Pascal 函數(shù)及過程的參數(shù)個數(shù)是預定的。如果參數(shù)個數(shù)預先沒有確定,則需要通過開放數(shù)組來實現(xiàn)參數(shù)傳遞。
一個開放數(shù)組參數(shù)就是一個固定類型開放數(shù)組的元素。 也就是說,參數(shù)類型已定義,但是數(shù)組中的元素個數(shù)是未知數(shù)。
function Sum (const A: array of Integer): Integer;類型變化的開放數(shù)組參數(shù)
除了類型固定的開放數(shù)組外,Delphi 還允許定義類型變化的甚至無類型的開放數(shù)組。這種特殊類型的數(shù)組元素可隨意變化,能很方便地用作傳遞參數(shù)。
技術上,array of const 類型的數(shù)組就能實現(xiàn)把不同類型、不同個數(shù)元素組成的數(shù)組一下子傳遞給例程
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 參數(shù)之后
不能在函數(shù)里SetLength(a,num);
所以我們把參數(shù)設為動態(tài)數(shù)組類型
type
tarrayofinteger = array of integer;
procedure grow( var data: tarrayofinteger );
begin
setlength( data, length(data) ,?? 新長度 );
// 動態(tài)數(shù)組作為參數(shù)可以改變數(shù)組大小。
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参数几个概念上的区别 收藏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《大数据》杂志——大数据技术发展的十个前
- 下一篇: Delphi中DLL初始化和退出处理