Next: , Previous: value, Up: Reference



var

Synopsis

As part of a variable declaration part or in a statement block:

     var variable_identifier: type_identifier;

or

     var variable_identifier: type_definition;

and with initializing value:

     var variable_identifier: type_identifier value constant_expression;

or

     var variable_identifier: type_definition value constant_expression;

As part of a parameter list (passing by reference):

     var var_parameter: type_identifier;

or without type declaration

     var var_parameter;

or protected (i.e., the called routine can't modify the parameter):

     protected var var_parameter: type_identifier;

or without type declaration

     protected var var_parameter;

Description

In a declaration part: The reserved word var declares a variable_identifier whose type is of type_identifier or which is defined by type_definition. For further description see Variable Declaration, Type Declaration, Type Definition, Data Types.

In a parameter list: see Subroutine Parameter List Declaration.

Conforming to

var is defined in ISO 7185 Pascal and supported by all known Pascal variants. Untyped var parameters in parameter lists are a UCSD Pascal extension. The ability to do var declarations in a statement block is a GNU Pascal extension.

Example

     program VarDemo;
     
     type
       FooType = Integer;
     
     var
       Bar: FooType;
       ArrayFoo: array [0 .. 9] of Integer;   { array var definition }
       FecordFoo: record                      { record var definition }
                    Bar: Integer
                  end;
       CharsetFoo: set of Char;               { set var }
       SubrangeFoo: -123 .. 456;              { subrange var }
       EnumeratedFoo: (Mon, Tue, Wed, Thu, Fri, Sat, Sun);  {enumerated var }
       PointerBar: ^FooType;                  { pointer var }
     
     procedure ReadFoo (var Foo: FooType);
     begin
       ReadLn (Foo)
     end;
     
     begin
       var Bar: Integer;  { GNU Pascal extension }
       Bar := 42
     end.

See also

Keywords, type, array, record, set, Subrange Types, Pointer, protected.