CALL BY VALUE
When a function is called by value, the value of actual arguments is copy to the former arguments in the called function. The value may be altered but when the control is transferred back to calling function the altered value are not transferred back./* Program to show use of call by value function */
#include<stdio.h>#include<conio.h>
int change(int i)
{
i=i*5;
printf("\n inside change is %d",i);
return i;
}
void main()
{
int a,b,c,d;
printf("\n enter any value of a and b");
scanf("%d%d",&a,&b);
c=a+b;
printf("\n before change is %d",c);
d=change(a);
printf("\n after change is %d",c);
getch();
}
CALL BY REFERENCE:
When function is called by reference the address of actual arguments is copied onto the former arguments. The content of the variable that are altered within the called function block returned to the calling function in the altered form itself because the actual and former arguments are referring the same memory location./*Program to show use of call by reference function*/
#include<stdio.h>#include<conio.h>
void change( int *p)
{
*p=*p+1;
printf("\n inside change is %d",*p);
}
void main()
{
int a;
printf("\n enter any value of a");
scanf("%d",&a);
printf("\n before change is %d",a);
change(&a);
printf("\n after change is %d",a);
getch();
}
/*Program to show change in values by call by reference function*/
#include<stdio.h>#include<conio.h>
void change(int *p)
{
*p=*p*3;
printf("\n inside change is %d",*p);
}
void main()
{
int a,b,sum;
printf("\n enter any value of a and b");
scanf("%d%d",&a,&b);
sum=a+b;
printf("\n before change sum is %d",sum);
change(&sum);
printf("\n after change sum is %d",sum);
getch();
}
No comments:
Post a Comment