Write a C program to read two numbers from user and add them using pointers. How to find sum of two number using pointers in C programming. Program to perform arithmetic operations on number using pointers.
Example
Input
Input num1: 10 Input num2: 20
Output
Sum = 30 Difference = -10 Product = 200 Quotient = 0
Required knowledge
Basic C programming, Pointers
Read more – Program to add two numbers
Logic to add two numbers using pointers
Since the first days of writing programs in C. We have performed arithmetic operations so many times. In previous post I explained how to store address of a variable in pointer variable. Let us now learn to work with the value stored in the pointer variable.
There are two common operators used with pointers –
- & (Address of) operator – When prefixed with any variable returns the actual memory address of that variable.
- * (Dereference) operator – When prefixed with any pointer variable it evaluates to the value stored at the address of a pointer variable.
Program to add two numbers using pointers
**
* C program to add two number using pointers
*/
#include <stdio.h>
int main()
{
int num1, num2, sum;
int *ptr1, *ptr2;
ptr1 = &num1; // ptr1 stores the address of num1
ptr2 = &num2; // ptr2 stores the address of num2
printf("Enter any two numbers: ");
scanf("%d%d", ptr1, ptr2);
sum = *ptr1 + *ptr2;
printf("Sum = %d", sum);
return 0;
}
You have noticed that, I haven’t used any & (address of) operator in the scanf() function. scanf() takes the actual memory address where the user input is to be stored. The pointer variable ptr1 and ptr2 contains the actual memory addresses of num1 and num2. Therefore we need not to prefix the & operator in scanf() function in case of pointers.
Now using this, it should be an easy workaround to compute all arithmetic operations using pointers. Let us write another program that performs all arithmetic operations using pointers.
Program to perform all arithmetic operations using pointers
/**
* C program to perform all arithmetic operations using pointers
*/
#include <stdio.h>
int main()
{
float num1, num2; // Normal variables
float *ptr1, *ptr2; // Pointer variables
float sum, diff, mult, div;
ptr1 = &num1; // ptr1 stores the address of num1
ptr2 = &num2; // ptr2 stores the address of num2
/* User input through pointer */
printf("Enter any two real numbers: ");
scanf("%f%f", ptr1, ptr2);
/* Perform arithmetic operation */
sum = (*ptr1) + (*ptr2);
diff = (*ptr1) - (*ptr2);
mult = (*ptr1) * (*ptr2);
div = (*ptr1) / (*ptr2);
/* Print the results */
printf("Sum = %.2f\n", sum);
printf("Difference = %.2f\n", diff);
printf("Product = %.2f\n", mult);
printf("Quotient = %.2f\n", div);
return 0;
}
Note: Always use proper spaces and separators between two different programming elements. As *ptr1 /*ptr2 will generate a compile time error.
Output
Enter any two real numbers: 20 5 Sum = 25.00 Difference = 15.00 Product = 100.00 Quotient = 4.00
Happy coding 😉