C++ Function with Reference Parameters
In C++, functions can use reference parameters to directly modify the arguments passed to them. A reference parameter is declared using the &
symbol in the function signature. When a function is called with reference parameters, it operates directly on the variables passed as arguments, rather than on copies.
Syntax
</>
Copy
return_type function_name(parameter_type& parameter_name, ... ) {
// Function body
}
- return_type
- Specifies the type of value the function returns. Use
void
if the function does not return anything. - function_name
- The name of the function.
- parameter_type& parameter_name
- Declares a reference parameter. The
&
symbol indicates that the parameter is a reference, allowing the function to operate directly on the caller’s variable. - …
- Additional parameters can be declared as needed.
Examples
Example 1: Swapping Two Variables
This example demonstrates how to use reference parameters to swap the values of two variables.
</>
Copy
#include <iostream>
using namespace std;
void swap(int& x, int& y) {
int temp = x;
x = y;
y = temp;
}
int main() {
int a = 10, b = 20;
cout << "Before swap: a = " << a << ", b = " << b << endl;
swap(a, b);
cout << "After swap: a = " << a << ", b = " << b << endl;
return 0;
}
Output:
Before swap: a = 10, b = 20
After swap: a = 20, b = 10
Explanation:
- The function
swap
takes two reference parameters,x
andy
. - The function directly modifies the values of the variables passed to it, swapping their contents.
- In the
main()
function, the variablesa
andb
are passed toswap
, and their values are modified directly.
Example 2: Incrementing a Variable
This example shows how to use reference parameters to increment a variable’s value directly.
</>
Copy
#include <iostream>
using namespace std;
void increment(int& value) {
value++;
}
int main() {
int number = 5;
cout << "Before increment: " << number << endl;
increment(number);
cout << "After increment: " << number << endl;
return 0;
}
Output:
Before increment: 5
After increment: 6
Explanation:
- The function
increment
takes a single reference parametervalue
. - Inside the function,
value++
increments the variable directly. - In the
main()
function, the variablenumber
is passed toincrement
, and its value is updated in place.
Points to Remember about Functions with Reference Parameters
- Reference parameters allow functions to directly modify the variables passed as arguments.
- They are useful for reducing memory overhead and avoiding the creation of unnecessary copies.
- Use reference parameters when you need to update the caller’s variables or when working with large data types to improve efficiency.
- Be cautious with reference parameters, as unintended modifications can occur if the function alters variables unexpectedly.