Call By Value:
Creates a new memory loaction for use within the
subroutine.The memory is freed once it leaves the
subroutine.Changes made to the variable are not affected
outside the subroutine.
Call By Reference:
Passes a pointer to the memory location.Changes made to the
variable within the subroutine affects the variable outside
in call by value method,a compiler get a copy of the
variable and thus changes made in the value in function
will not reflected back to the called function.but in call
by reference method,the compiler didn't get any copy ,but
actually it works on the original copy and thus changes
will be reflected back
IN CALL BY VALUE, BOTH THE ACTUAL AND FORMAL PARAMETERS
WILL BE CREATED IN DIFFERENT MEMORY LOCATIONS WHEREAS IF
THEY ARE CALLED BY REFERENCE BOTH WILL BE CREATED AT THE
SAME LOCATION ANDit is sending the address of variables to the called function .
Call by value method:
passing the value of variable to the function.
void swap(int a,int b)
c=a;//changes here do not affect in values
a=b;//of x and y in main function..
call by reference method:
passing the address of variable to the function.
changes made in subfunction causes changes in address of
variables n thus in main () also..