C++ program to find addition and subtraction using function call by address


Suppose we have two numbers a and b. We shall have to define a function that can calculate (a + b) and (a - b) both. But using a function in C++, we can return at most one value. To find more than one output, we can use output parameters into function arguments using pointers, and call that function using addresses of those variables. Here in this problem we shall update a with a+b and b with a-b. When we call the function we shall have to pass the address of these two variables.

So, if the input is like a = 15, b = 18, then the output will be a + b = 33 and a - b = -3

To solve this, we will follow these steps −

  • define a function solve(), this will take addresses of a and b

  • temp := sum of the values of variable whose addresses are given

  • b := difference of the values of variable whose addresses are given

  • a = temp

Example

Let us see the following implementation to get better understanding −

#include <iostream>
using namespace std;
int solve(int *a, int *b){
    int temp = *a + *b;
    *b = *a - *b;
    *a = temp;
}
int main(){
    int a = 15, b = 18;
    solve(&a, &b);
    cout << "a + b = " << a << " and a - b = " << b;
}

Input

15, 18

Output

a + b = 33 and a - b = -3

Updated on: 07-Oct-2021

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements