66.7k views
2 votes
Taking a suitable example in c language explain the of call by value and call by reference concepts.

User Pattersonc
by
8.7k points

1 Answer

5 votes

Answer: The difference between call by value and call by reference is that in call by value the actual parameters are passed into the function as arguments whereas in call by reference the address of the variables are sent as parameters.

Step-by-step explanation:

Some examples are:

call by value

#include <stdio.h>

void swap(int, int);

int main()

{ int a = 10, b= 20;

swap(a, b);

printf("a: %d, b: %d\\", a, b);

}

void swap(int c, int d)

{

int t;

t = c; c = d; d = t;

}

OUTPUT

a: 10, b: 20

The value of a and b remain unchanged as the values are local

//call by reference

#include <stdio.h>

void swap(int*, int*);

int main()

{

int a = 10, b = 20;

swap(&a, &b); //passing the address

printf("a: %d, b: %d\\", a, b);

}

void swap(int *c, int *d)

{

int t;

t = *c; *c = *d; *d = t;

}

OUTPUT

a: 20, b: 10

due to dereferencing by the pointer the value can be changed which is call by reference

User Hfactor
by
8.5k points