Page Stats
Visitor: 571
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