0% found this document useful (0 votes)
235 views5 pages

Call by Value and Call by Reference in C++

This document discusses call by value and call by reference in C++. In call by value, the value being passed to the function is locally stored and changes made inside the function are not reflected outside. In call by reference, the address of the value is passed so actual and formal arguments share the same memory location and changes inside the function are reflected outside. Examples are provided to illustrate the difference between call by value and call by reference.

Uploaded by

john
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
235 views5 pages

Call by Value and Call by Reference in C++

This document discusses call by value and call by reference in C++. In call by value, the value being passed to the function is locally stored and changes made inside the function are not reflected outside. In call by reference, the address of the value is passed so actual and formal arguments share the same memory location and changes inside the function are reflected outside. Examples are provided to illustrate the difference between call by value and call by reference.

Uploaded by

john
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Call By Value and Call By Reference Concept and program

Call by value and call by reference in C++


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.

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:

By Mahesh Patidar
Call By Value and Call By Reference Concept and program

#include <iostream.h>
#include<conio.h>

void change(int); // declaration of function

Void main()
{
Dat= 3
Clrscr(); // call library function
int dat = 3;
cout << "Value of the data in main function is: " << dat<< endl;
change(dat); // Calling of function

}
void change(int data) // definition of function
{ 3

data = 50*4; Data = 20


cout << "Value of the data in change function is: " << data<< endl;
}

Output:

Value of the data in change function is : 20

Value of the data in main function is: 3

#include <iostream.h>
Void main()
{
int a=3; // Memory address = 10000AB
int *b; // pointer variable Memory address = 20000AB
b = & a; //address of b=10000AB
cout << "Value of a is: " << a; //3
cout<<”Address of a is:”<<&a; // 10000AB
cout<<”Address of a is:”<< b; // 10000AB
*b=100+5;
cout<<”Value at given Address stored in b:”<<* b; //105
*b=10;

Cout<<” value of a = ”<<a; //105


}

By Mahesh Patidar
Call By Value and Call By Reference Concept and program

A 10000AB B 20000AB

105 10000AB

By Mahesh Patidar
Call By Value and Call By Reference Concept and program

In call by reference, original value is modified because we pass reference (address).

Here, address of the value is passed in the function, so actual and formal arguments
share the same address space. Hence, value changed inside the function, is reflected
inside as well as outside the function.

Note: To understand the call by reference, you must have the basic knowledge of
pointers.

Let's try to understand the concept of call by reference in C++ language by the
example given below:

#include<iostream>

void swap(int *, int *);

Void main()
{
int x=500, y=100;
swap(&x, &y); // passing value to function
cout<<"Value of x is: "<<x<<endl;
cout<<"Value of y is: "<<y<<endl;

void swap(int *x1, int *y1)


{
int swap;
swap=*x1;
*x1=*y1;
*y1=swap;
}

Output:

Value of x is: 100


Value of y is: 500

By Mahesh Patidar
Call By Value and Call By Reference Concept and program

Difference between call by value and call by


reference in C++
No. Call by value Call by reference

1 A copy of value is passed to the An address of value is passed to the


function function

2 Changes made inside the function is Changes made inside the function is
not reflected on other functions reflected outside the function also

3 Actual and formal arguments will be Actual and formal arguments will be
created in different memory location created in same memory location

By Mahesh Patidar

You might also like