Three variables entered by the user are stored in variables a, b and c respectively.
Then, these variables are passed to the function cyclicSwap()
. Instead of passing the actual variables, addresses of these variables are passed.
When these variables are swapped in cyclic order in the cyclicSwap()
function, variables a, b and c in the main
function are also automatically swapped.
Example: Program to Swap Elements Using Call by Reference
#include<iostream>
using namespace std;
void cyclicSwap(int *a, int *b, int *c);
int main()
{
int a, b, c;
cout << "Enter value of a, b and c respectively: ";
cin >> a >> b >> c;
cout << "Value before swapping: " << endl;
cout << "a, b and c respectively are: " << a << ", " << b << ", " << c << endl;
cyclicSwap(&a, &b, &c);
cout << "Value after swapping numbers in cycle: " << endl;
cout << "a, b and c respectively are: " << a << ", " << b << ", " << c << endl;
return 0;
}
void cyclicSwap(int *a, int *b, int *c)
{
int temp;
temp = *b;
*b = *a;
*a = *c;
*c = temp;
}
Output
Enter value of a, b and c respectively: 1 2 3 Value before swapping: a=1 b=2 c=3 Value after swapping numbers in cycle: a=3 b=1 c=2
Notice that we haven't returned any values from the cyclicSwap()
function.