Variable parameter

From Lazarus wiki
Revision as of 07:22, 18 July 2016 by FPC user (talk | contribs) (Category:Pascal)
Jump to navigationJump to search


Variable parameter (or Reference Parameter) is an input and output parameter meaning it can be used for passing a value to a function or procedure, as well as to get back a value from a function or procedure. It is indicated by the use of the keyword var in front of the formal parameter.

A variable parameter can be considered an alias for the actual argument given by the calling routine. When a procedure or function changes the value of a variable parameter they are actually changing the variable in the code that called the function or procedure. The use of variable parameters is referred to as "pass by reference", since the function or procedure is receiving a reference to the actual parameter. The alternative to variable parameters - value parameters - provide a copy of the value that was in the actual arguments. Using value parameters is referred to as "pass by value".

XOR swap

  procedure XorSwap(  var i,j:integer );
    i := i xor j ;
    j := i xor j ;
    i := i xor j ;


  procedure OrderSmallBig( var a,b:integer );
    if a > b then XorSwap( a, b );

Read more