zoukankan      html  css  js  c++  java
  • Handbook之008:按值传递 与 按址传递

    按值传递,会在函数内复制一个变量,不会改变外部参数的值。

    按址传递,需要在参数上写var标识符,会改变外部传入参数的值。

    如下图:

    image

    代码如下:

    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.
  • 相关阅读:
    浅谈随机化算法
    SPSS问题
    羽毛球技术
    三大线性排序之桶排序
    Java产生随机数
    Java堆栈详解
    三大线性排序之基数排序
    指针 和 数组
    复制构造函数 与 赋值函数 的区别
    【c++】类中的const成员
  • 原文地址:https://www.cnblogs.com/GodPan/p/4905072.html
Copyright © 2011-2022 走看看