Page Stats
Visitor: 832
Types of function
In C Language, when function is called with arguments, you can pass the values using 2 ways: call by value and call by reference.
- Call by value When a function is called and value of a variable is passed via argument it is known as call-by-value. In this case, any changes made inside the function have no effect on another functions.
- Call by Reference When a function is called and reference (address) of a variable is passed via argument it is known as call-by-reference. In this case, changes will reflect in another functions.
Example 1: Call by value.
#include<stdio.h>
#include<conio.h>
void fun(int); //function declaration
void main()
{
int a=10;
clrscr();
fun(a); //function call
printf("\nValue of A outside function is = %d",a);
getch();
}
void fun(int a) //function definition
{
a=20;
printf("\nValue of A inside function is %d",a);
}
Value of A inside function is 20
Value of A outside function is 10
Value of A outside function is 10
Value change inside function will NOT reflect in main function.
Example 2: Call by reference.
#include<stdio.h>
#include<conio.h>
void fun(int &a); //function declaration
void main()
{
int a=10;
clrscr();
fun(a); //function call
printf("\nValue of A outside function is = %d",a);
getch();
}
void fun(int &a) //function definition
{
a=20;
printf("\nValue of A inside function is %d",a);
}
Value of A inside function is 20
Value of A outside function is 20
Value of A outside function is 20
Value change inside function will reflect in another function.
Advertisement
Example 3: Program to return multiple values by using call by reference.
#include<stdio.h>
#include<conio.h>
void AreaCircum(float, float &ar, float &cir);
void main()
{
float radius, area=0, circum=0;
clrscr();
printf("Enter Radius: ");
AreaCircum(radius, area, circum);
printf("\nArea of Circle = %f",area);
printf("\nCircumference of Circle = %f",circum);
getch();
}
void AreaCircum(float r, float &ar, float &cir)
{
ar=3.14*r*r;
cir=2*3.14*r;
}
Enter Radius: 10
Area of Circle = 314.000000
Circumference of Circle = 62.8
Area of Circle = 314.000000
Circumference of Circle = 62.8
Exercise Questions:
- WAP to Swap 2 Numbers using Call by Reference