标签:
按值传递,会在函数内复制一个变量,不会改变外部参数的值。
按址传递,需要在参数上写var标识符,会改变外部传入参数的值。
如下图:
代码如下:
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function DubleValue(var AValue: Integer): Integer; begin AValue := AValue * 2; end; function VarDubleValue(AValue: Integer): Integer; begin AValue := AValue * 2; end; procedure TForm1.Button1Click(Sender: TObject); var X: Integer; Y: Integer; begin X := 10; DubleValue(X); Memo1.Lines.Add(‘按址传递‘ + X.ToString); Y := 10; VarDubleValue(Y); Memo1.Lines.Add(‘按值传递‘ + Y.ToString); end; end.
标签:
原文地址:http://www.cnblogs.com/GodPan/p/4905072.html