Xpode.com        Click here to Print this article.

Function - Call by value

In this method the values of the actual arguments are copied to the formal arguments. Since the formal arguments are only the copies of the actual arguments, if we do any changes in the formal arguments they do not affect the actual arguments.

For example (C++):

        void swap(int,int);

void main ( )
{
int a,b;
clrscr ( );
a=10;
b=20;
cout<<"Before calling swap function: a="<<a<<" b="<<b;
swap (a,b);
cout<<"\nAfter calling swap function: a="<<a<<" b="<<b;
getch ( );
}

void swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
cout<<"\nInside swap function: x="<<x<<" y="<<y;
}


Here in the main ( ) function we have declared two variables a and b with values 10 and 20 respectively. So we have in memory:

Call By value

When we call the swap ( ) function by value, two new variables x and y are created with separate memory locations from a and b and the values of a and b are copied to x and y respectively. So we have in memory now:

Call By value

Inside the swap ( ) function we have interchanged the values of x and y. Since x and y are separate memory locations from a and b, any changes made to x and y will not affect a and b. So after swap function we have in memory:

Call By value

Click here for example



http://


Contributed by:
Rohit kakria
I am software developer, moderator of xpode.com

Resourse address on xpode.com
http://www.xpode.com/Print.aspx?Articleid=54

Click here to go on website