Pascal之( 参数传递)

数值参数:实参的值赋给对应形参,形参的改变不影响实参
unit first;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    btn1: TButton;
    edt1: TEdit;
    edt2: TEdit;
    procedure btn1Click(Sender: TObject);
   
  private
    function formalparameter(x, y: integer): integer;
    { Private declarations }
  public
 
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
  x, y: integer;
  r: integer;
begin
  x := 1;
  y := 100;
  r:=formalparameter(x, y);
   edt1.Text:='x='+IntToStr(x);
   edt2.Text:='y='+IntToStr(y);
   MessageBox(0, PChar(IntToStr(r)), 'R的值为:', MB_OK);


end;

function TForm1.formalparameter(x, y: integer): integer;
begin
  x := x + 1;
  y := y + 2;
  Result := x + y;
end;

end.

输出:x=1,y=100,r=104

变量参数:变量参数传递一个指向参数的引用,即指针。改变引用传递 的参数将影响对应的实际参数
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    btn1: TButton;
    edt1: TEdit;
    edt2: TEdit;
    procedure btn1Click(Sender: TObject);
    procedure variableparameter(var x, y: integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var x,y:integer;
begin
 x:=100;
 y:=100;
 variableparameter(x,y);
 edt1.Text:='x值为:'+IntToStr(x);
 edt2.Text:='y值为:'+IntToStr(y);
end;

procedure TForm1.variableparameter(var x, y: integer);
begin
    x:=x+1;
    y:=y+1;
end;
end.

输出:x=101,y=101

常量参数:传递给函数或过程的参数在函数或过程中不能被改变,
function myfunction(const x, y: integer): Integer;
begin
  // x := x + 1;    错误语法:不能改变参数的值
  //y := y + 1;
  Result := x * y;
end;
4. 数组参数 :数组可以作为函数或过程的参数,但在对数组参数进行声明中不能包含数组索引类型的声明。
    procedure Sort(A: array[1..10] of Integer);    //不正确 
    type TDigits = array[1..10] of Integer;
    procedure Sort(A: TDigits);        //正确
    可以使用动态数组作为函数和过程的参数。
    例:
    procedure Clear(var A: array of Real);
    var  I: Integer;
    begin
         for I := 0 to High(A) do A[I] := 0;
    end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值