Summary: In this programming example, we will swap two numbers in C++ using call by reference and call by address.

Swap Numbers by Call by Reference

#include <iostream>
using namespace std;
 
void swapByReference(int &m, int &n){
    int temp= m;
    m=n;
    n=temp;
}
 
int main()
{
    int a,b;
    
    cout << "Enter two numbers A & B"<< endl;
    cin >> a;
    cin >> b;
    
    cout << "Value of A before swapping: " << a <<endl;
    cout << "Value of B before swapping: " << b <<endl;
    
    swapByReference(a,b);
    
    cout << "Value of A after swapping: " << a <<endl;
    cout << "Value of B after swapping: " << b <<endl;
}

Output:

Enter two numbers A & B
5 3
Value of A before swapping: 5
Value of B before swapping: 3
Value of A after swapping: 3
Value of B after swapping: 5


In this example, we are passing the reference of a and b to the swapByReference method for the swapping process.

In the swapByReference method, we interchange the reference of the two variables using a temporary variable.

Swap Numbers by Call by Address

#include <iostream>
using namespace std;
 
void swapUsingAddress(int *m, int *n){
    int temp= *m;
    *m=*n;
    *n=temp;
}
 
int main()
{
    int a,b;
    
    cout << "Enter two numbers A & B"<< endl; 
    cin >> a;
    cin >> b;
    
    cout << "Value of A before swapping: " << a <<endl;
    cout << "Value of B before swapping: " << b <<endl;
    
    //passing address of a and b
    swapUsingAddress(&a, &b); 
 
    cout << "Value of A after swapping: " << a <<endl;
    cout << "Value of B after swapping: " << b <<endl;
}

Output:

Enter two numbers A & B
9 5
Value of A before swapping: 9
Value of B before swapping: 5
Value of A after swapping: 5
Value of B after swapping: 9


In this method, we have used pointers to interchange the values of a and b.

Instead of value or reference, we pass the address of variables a and b to the swapUsingAddress method and swap their values by dereferencing the same.

Hope now you know, how to swap two numbers using reference and address in C++. If you have any doubts about the tutorial then comment below.

Leave a Reply