• 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;
  • 相关阅读:
    网络测量中基于Sketch方法的简单介绍
    Reading SBAR SDN flow-Based monitoring and Application Recognition
    Reading Meticulous Measurement of Control Packets in SDN
    Reading SketchVisor Robust Network Measurement for Sofeware Packet Processing
    ovs加dpdk在日志中查看更多运行细节的方法
    后缀数组
    (转载)LCA问题的Tarjan算法
    Codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) A. Checking the Calendar(水题)
    Vijos 1816统计数字(计数排序)
    卡特兰数
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/2806520.html
Copyright © 2020-2023  润新知