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 andc in the main
function are also automatically swapped.
C Program to Swap Elements Using Call by Reference
#include<stdio.h>
void cyclicSwap(int *a,int *b,int *c);
int main()
{
int a, b, c;
printf("Enter a, b and c respectively: ");
scanf("%d %d %d",&a,&b,&c);
printf("Value before swapping:\n");
printf("a = %d \nb = %d \nc = %d\n",a,b,c);
cyclicSwap(&a, &b, &c);
printf("Value after swapping:\n");
printf("a = %d \nb = %d \nc = %d",a, b, c);
return 0;
}
void cyclicSwap(int *a,int *b,int *c)
{
int temp;
// swapping in cyclic order
temp = *b;
*b = *a;
*a = *c;
*c = temp;
}
Output
Enter a, b and c respectively: 1
2
3
Value before swapping:
a = 1
b = 2
c = 3
Value after swapping:
a = 3
b = 1
c = 2
Notice that we haven't returned any values from the cyclicSwap()
function.
No comments:
Post a Comment