Difference Between Call By Value and Call By Reference?
Answers were Sorted based on User's Feedback
Answer / ravi s. sharma
In call by value, a copy of value known as(actual argument)
is passed to the function known as(formal argument). Both
values are stored at different locations and scope. The
changes made in a copy(formal argument) does not affect the
original value(actual argument).
In call by reference, a reference/address of variable known
as(actual argument) is passed to the function known
as(formal argument) which is stored in a
pointer/ref.variable. The changes made in a function
(through pointer/ref. variable) affect the original
value(actual argument).
Is This Answer Correct ? | 15 Yes | 5 No |
Answer / 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 |
Answer / m.vairalkar
It is not difference
but good thing..Both tha
techniques r good ..if we want
changes then use call by refernce
otherwise use call by value
Is This Answer Correct ? | 10 Yes | 5 No |
Answer / prateek g
The call by value system copies the actual parameters to
actual parameters and then uses them i.e. the function
creates its own copy of values, any change in
these values will not be reflected
in the original values.
The call by reference system refers the actual parameters
i.e. these doesn’t creates a copy of original parameters,
any change in these parameters will be reflected back in
original parameters.
Is This Answer Correct ? | 7 Yes | 2 No |
Answer / varsha jarwal
In call by value:-
since new location is created, this method is slow.
In call by reference:-
since the existing memory location is used through its
address, this method is fast.
Is This Answer Correct ? | 5 Yes | 1 No |
Answer / pasang tsering
call by value:-value of the actual argument passed to the
formal arguments.
call by reference:-address of the actual arguments passed
to the fomal arguments.
Is This Answer Correct ? | 4 Yes | 1 No |
Answer / atul gupta
call by value: copies the value of argument into the formal
parameter.Any changes made in the parameter does not affect
the argument .
call by reference : copies the address of argument into the
formal parameter . The address will access the actual argument
used in the call . so any changes made in the parameter will effect the argument
Is This Answer Correct ? | 4 Yes | 2 No |
Answer / vino
Mostly call by value and call by reference is differ from
copy and modify process..
Copy:
Call by value:
It take difference memory locations for variables.Duplicate copy of the original parameter is passed.
Call by reference:
It takes Same memoy locations for variables.Actual copy of the original parameter is passed.
Modify:
Call by value:
No affect on original parameter after modifying the parameter in functions.
Call by reference:
original parameter can be affect afetr modifying the parameter in function..
Is This Answer Correct ? | 2 Yes | 0 No |
Answer / meghanchal kumar dixit
call by value-
If we call a function in C by passing values of variables as the parameters/arguments to the function then such type of function call is known as Call by value.
call by reference-A function by passing addresses of variables as the parameters to the function is known as Call by Reference.
Is This Answer Correct ? | 2 Yes | 0 No |
Answer / aishwarya kulkarni
In call By Value it create different memory for local
variable and actual called Variable. so changes does not
affect to the actual variable.
Call By Reference:
In call By Reference Compiler create same memory location
for the local variable and actual called variable so changes
affect to the actual variable and modify the value of actual
called Variable.
Is This Answer Correct ? | 1 Yes | 0 No |
What is an interface? In what scenario we use interface? What is the difference between abstract class and interface?
What is difference between dependent and independent data?
What are the functional areas? User groups? And how does abap/4 query work in relation to these?
What are aggregated objects
What is the difference between table and template?
how to use binary search in internal table?what is the use of indexes and secondary indexes?
Is it possible to bring select option in module pool screens?
HOW TO DIFFERENT CALL TRANSACTION ON THE BASIS OF DOUBLE CLICKING ON DIFFERENT FIELD.
Why defining Logical systems?
what r the text elements in scripts?
2 Answers Bristle Cone, Cap Gemini, HP, Satyam, Wipro,
What is an index? By default system will create the primary index or User can create,if user How? And also Secondary indexes by User or by defaultly system?
what is the main difference between lsmw and bdc ? in which situation we will go for lsmw instead of bdc?