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 |
In Smartforms or ADOBE Forms Can we get text from standard table in verticle form? if yes, How?
What is partner profile
Explain the difference between float and packed data type?
How to find Kernal badi ?
Can we use Session method & Call transaction both in one BDC if yes please give me example and scenario where we use this ?
dofference between templates and tables in smartforms?
I have 2 inputs in Module pool prgm, if i click on the input i need to get drop down list..How to get it..
What is the use of f4if_shlp_exit_example function module ? : sap abap data dictionary
Tell the Material Document, shipping, delivery, invoice tables?
In Dialog program Syntax of Synchronous and Asynchronous?
can any one tell me the types of smartforms
What are the steps in a bdc session? : abap bdc
SAP Basis (1262)
SAP ABAP (3939)
SAPScript (236)
SAP SD (Sales & Distribution) (2717)
SAP MM (Material Management) (912)
SAP QM (Quality Management) (99)
SAP PP (Production Planning) (523)
SAP PM (Plant Maintenance) (252)
SAP PS (Project Systems) (138)
SAP FI-CO (Financial Accounting & Controlling) (2766)
SAP HR (Human Resource Management) (1180)
SAP CRM (Customer Relationship Management) (432)
SAP SRM (Supplier Relationship Management) (132)
SAP APO (Advanced Planner Optimizer) (92)
SAP BW (Business Warehouse) (896)
SAP Business Workflow (72)
SAP Security (597)
SAP Interfaces (74)
SAP Netweaver (282)
SAP ALE IDocs (163)
SAP Business One (110)
SAP BO BOBJ (Business Objects) (388)
SAP CPS (Central Process Scheduling) (14)
SAP GTS (Global Trade Services) (21)
SAP Hybris (132)
SAP HANA (700)
SAP PI (Process Integration) (113)
SAP PO (Process Orchestration) (25)
SAP BI (Business Intelligence) (174)
SAP BPC (Business Planning and Consolidation) (38)
SAP BODS (Business Objects Data Services) (49)
SAP BODI (Business Objects Data Integrator) (26)
SAP Ariba (9)
SAP Fiori (45)
SAP EWM (Extended Warehouse Management) (58)
Sap R/3 (150)
SAP FSCM Financial Supply Chain Management (101)
SAP WM (Warehouse Management) (31)
SAP GRC (Governance Risk and Compliance) (64)
SAP MDM (Master Data Management) (0)
SAP MRS (Multi Resource Scheduling) (0)
SAP ESS MSS (Employee Manager Self Service) (13)
SAP CS (Customer Service) (0)
SAP TRM (Treasury and Risk Management) (0)
SAP Web Dynpro ABAP (198)
SAP IBP (Integrated Business Planning) (0)
SAP OO-ABAP (Object Oriented ABAP) (70)
SAP S/4 HANA Finance (Simple Finance) (143)
SAP FS-CD (Collections and Disbursements) (0)
SAP PLM (Product Lifecycle Management) (0)
SAP SuccessFactors (33)
SAP Vistex (0)
SAP ISR (IS Retail) (28)
SAP IdM (Identity Management) (0)
SAP IM (Investment Management) (0)
SAP UI5 (59)
SAP SCM (Supply Chain Management) (51)
SAP XI (Exchange Infrastructure) (49)
SAP Cloud Platform (34)
SAP Testing (89)
SAP SolMan (Solution Manager) (63)
SAP MaxDB (116)
SAP GUI (15)
SAP AllOther (329)