Write a C program to swap two numbers using pointers and functions. How to swap two numbers using call by reference method. Logic to swap two number using pointers in C program.
Example
Input
Input num1: 10 Input num2: 20
Output after swapping
Num1 = 20 Num2 = 10
Required knowledge
Basic C programming, Functions, Pointers
Logic to swap two numbers using call by reference
Swapping two numbers is simple and a fundamental thing. You need not to know any rocket science for swapping two numbers. Simple swapping can be achieved in three steps -
- Copy the value of first number say num1 to some temporary variable say temp.
- Copy the value of second number say num2 to the first number. Which is num1 = num2.
- Copy back the value of first number stored in temp to second number. Which is num2 = temp.
Let us implement this logic using call by reference concept in functions.
Program to swap two numbers using call by reference
/** * C program to swap two number using call by reference */ #include <stdio.h> /* Swap function declaration */ void swap(int * num1, int * num2); int main() { int num1, num2; /* Input numbers */ printf("Enter two numbers: "); scanf("%d%d", &num1, &num2); /* Print original values of num1 and num2 */ printf("Before swapping in main \n"); printf("Value of num1 = %d \n", num1); printf("Value of num2 = %d \n\n", num2); /* Pass the addresses of num1 and num2 */ swap(&num1, &num2); /* Print the swapped values of num1 and num2 */ printf("After swapping in main \n"); printf("Value of num1 = %d \n", num1); printf("Value of num2 = %d \n\n", num2); return 0; } /** * Function to swap two numbers */ void swap(int * num1, int * num2) { int temp; // Copy the value of num1 to some temp variable temp = *num1; // Copy the value of num2 to num1 *num1= *num2; // Copy the value of num1 stored in temp to num2 *num2= temp; printf("After swapping in swap function \n"); printf("Value of num1 = %d \n", *num1); printf("Value of num2 = %d \n\n", *num2); }
Before moving on to other post, learn more ways to play with swapping numbers.
Output
Enter two numbers: 10 20 Before swapping in main Value of num1 = 10 Value of num2 = 20 After swapping in swap function Value of num1 = 20 Value of num2 = 10 After swapping in main Value of num1 = 20 Value of num2 = 10
Happy coding ;)