In MQL5, passing parameters by reference means that you are passing the address of a variable rather than its value. This allows functions to modify the original variable’s value directly. This is done using the &
symbol in the function definition. When a parameter is passed by reference, any changes made to that parameter in the function will affect the original variable.
Here’s an example to illustrate this:
- Function Definition
void ModifyValue(int &x) {
x = x * 2; // Modify the original variable's value
}
In this function, ModifyValue
, the parameter x
is passed by reference. Any changes made to x
will directly affect the variable that was passed to the function.
- Usage
void OnStart() {
int a = 5;
Print("Before ModifyValue: ", a); // Output: 5
ModifyValue(a);
Print("After ModifyValue: ", a); // Output: 10
}
Here, a
is passed to ModifyValue
. The function modifies a
‘s value by doubling it. Since a
is passed by reference, the change is reflected in the original variable a
outside the function.