Defines how the parameter is transmitted in the call.
By address
A reference is sent to the call, and any modification made in the call on the variable will directly change the value of the parameter.
By value
A parameter is copied and the value sent can be modified during the call with no impact on the parameter value.
Constant
A reference is sent to the call, but the parameter is read only. Any attempt to modify it during call execution will generate an error.