Call by value
- There are two ways to pass value or data to function in C language: call by value and call by reference.
- Original value is not modified in call by value but it is modified in call by reference.
Call by value & call by reference |
- Let's understand call by value and call by reference in c language one by one.
Call by value in C
- In call by value, original value is not modified.
- In call by value, value being passed to the function is locally stored by the function parameter in stack memory location.
- If you change the value of function parameter, it is changed for the current function only. It will not change the value of variable inside the caller method such as main().
- Let's try to understand the concept of call by value in c language by the example given below:
#include <stdio.h>
#include <conio.h>
void change(int num) {
printf("Before adding value inside function num=%d \n",num);
num=num+100;
printf("After adding value inside function num=%d \n", num);
}
int main() {
int x=100;
clrscr();
printf("Before function call x=%d \n", x);
change(x);//passing value in function
printf("After function call x=%d \n", x);
getch();
return 0;
}
Output
Before function call x=100
Before adding value inside function num=100
After adding value inside function num=200
After function call x=100
Before adding value inside function num=100
After adding value inside function num=200
After function call x=100