Call By Value in C

In call by value method of parameter passing, the values of actual parameters are copied to the function’s formal parameters.

  • There are two copies of parameters stored in different memory locations.
  • One is the original copy and the other is the function copy.
  • Any changes made inside functions are not reflected in the actual parameters of the caller.

Example of Call by Value

The following example demonstrates the call-by-value method of parameter passing

C




// C program to illustrate call by value
#include <stdio.h>
 
// Function Prototype
void swapx(int x, int y);
 
// Main function
int main()
{
    int a = 10, b = 20;
 
    // Pass by Values
    swapx(a, b); // Actual Parameters
 
    printf("In the Caller:\na = %d b = %d\n", a, b);
 
    return 0;
}
 
// Swap functions that swaps
// two values
void swapx(int x, int y) // Formal Parameters
{
    int t;
 
    t = x;
    x = y;
    y = t;
 
    printf("Inside Function:\nx = %d y = %d\n", x, y);
}


Output

Inside Function:
x = 20 y = 10
In the Caller:
a = 10 b = 20

Thus actual values of a and b remain unchanged even after exchanging the values of x and y in the function.

Difference Between Call by Value and Call by Reference in C

Functions can be invoked in two ways: Call by Value or Call by Reference. These two ways are generally differentiated by the type of values passed to them as parameters.

The parameters passed to the function are called actual parameters whereas the parameters received by the function are called formal parameters.

Similar Reads

Call By Value in C

In call by value method of parameter passing, the values of actual parameters are copied to the function’s formal parameters....

Call by Reference in C

...

Difference between the Call by Value and Call by Reference in C

In call by reference method of parameter passing, the address of the actual parameters is passed to the function as the formal parameters. In C, we use pointers to achieve call-by-reference....

Conclusion

...