Ask a Teacher



Pl explain Call by Reference

Call by Reference

A reference provides an alias- an alternate name- for the variable. While passing
reference arguments, a reference to the variable in the calling program is passed.

How it is different from call by value?
Write a C function to swap two given
numbers using call by reference mechanism.

Ans.

When an argument is passed by reference,
the caller actually allows the called
function to modify the original variable's
value.


• Sends the address of a variable to the
called function.

• Use the address operator(&) in the
parameter of the called function.

• Anytime we refer to the parameter,
therefore we actually referring to the
original variable.


• If the data is manipulated and changed
in the called function, the original data
in the function are changed.

/*swap function to interchange values by call by reference*/
#include<stdio.h>
#include<conio.h>
void swaping(int *x, int *y);
int main()

{
int n1,n2;
printf("Enter first number (n1) : ");
scanf("%d",&n1);
printf("Enter second number (n2) : ");
scanf("%d",&n2);
printf("\nBefore swapping values:");
printf("\n\tn1=%d \n\tn2=%d",n1,n2);
swaping(&n1,&n2);
printf("\nAfter swapping values:");
printf("\n\tn1=%d \n\tn2=%d",n1,n2);
getch();
return 0;
}
void swaping(int *x, int *y)
{
int z;
z=*x;
*x=*y;
*y=z;
}


comments powered by Disqus