Difference Between Call By Value and Call By Reference?
Answer Posted / shashi shekhar
For instance consider program1
main()
{
int x=50, y=70;
interchange(x,y);
printf(“x=%d y=%d”,x,y);
}
interchange(x1,y1)
int x1,y1;
{
int z1;
z1=x1;
x1=y1;
y1=z1;
printf(“x1=%d y1=%d”,x1,y1);
}
Here the value to function interchange is passed by value.
Consider program2
main()
{
int x=50, y=70;
interchange(&x,&y);
printf(“x=%d y=%d”,x,y);
}
interchange(x1,y1)
int *x1,*y1;
{
int z1;
z1=*x1;
*x1=*y1;
*y1=z1;
printf(“*x=%d *y=%d”,x1,y1);
}
Here the function is called by reference. In other words
address is passed by using symbol & and the value is
accessed by using symbol *.
The main difference between them can be seen by analyzing
the output of program1 and program2.
The output of program1 that is call by value is
x1=70 y1=50
x=50 y=70
But the output of program2 that is call by reference is
*x=70 *y=50
x=70 y=50
This is because in case of call by value the value is passed
to function named as interchange and there the value got
interchanged and got printed as
x1=70 y1=50
and again since no values are returned back and therefore
original values of x and y as in main function namely
x=50 y=70 got printed.
But in case of call by reference address of the variable got
passed and therefore what ever changes that happened in
function interchange got reflected in the address location
and therefore the got reflected in original function call in
main also without explicit return value. So value got
printed as *x=70 *y=50 and x=70 y=50
Is This Answer Correct ? | 8 Yes | 1 No |
Post New Answer View All Answers
What are the advantages of logical databases?
How to display if the value entered contains records or not?
How did you test the form you developed? How did you taken print?
What is the purpose of at first and at last?
what are Hana Basics
What are the functional modules used in sequence in bdc? : abap hr
What are the Control levels in internal tables?
Difference between BDC vs Direct Loads?
Difference between sy-tabix and sy-index? Where it is used? Can you check sy-subarc after perform?
How to Solve a Particular Ticket in Realtime ?
What are the differences between a database index and a match code?
What are the functional areas?
What is bdc programming? : abap bdc
What is direct input method ?
What is the different between abap and ooabap? Why do we use ooabap?