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.