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
IN SCRIPTS IF WE HAVE EMPTY SECOND LAYOUT AND IF WE HAVE MENTIONED ABOUT IT IN NEXT PAGE ATTRIBUTE THEN IN OUTPUT HOW WE GET THE SECOND PAGE OUTPUT.
hi experts,,, what is meant by documentation? test casr preparation? documentation and preparation and Tcode for this? quality and releasing? test case scenario?
How to set an Enhancement point for a custom report?
Difference between BDC vs Direct Loads?
What are the parameters used in each function?
How can you access the function code from menu painter?
When was the sap abap being created?
How can we create callable modules of program code within one abap/4 program? : abap modularization
What are the differences between a database index and a match code? : abap data dictionary
What is luw or data base transaction ?
how to Implement a BADI in which it restricts the access when purchase order is created against contract using definition ME_PURCHDOC_POSTED. please tell me the answers if any one knows. thanks in advance. :ravikiran
What is the maximum No. Of structures that can be included in a table or structure. : abap data dictionary
On ABAP, Did you set up a workflow? Are you familiar with all steps for setting up a workflow?
How to upload more than 2GB file from External Source to SAP?
What is the difference between call transaction method and the session method? : abap bdc