C (programming language)

C Program to Add Two Numbers using Pointers

Demystifying Pointers: Adding Numbers in C

C, a powerful language, offers diverse tools for manipulating data. This guide unlocks the potential of pointers, exploring how to write a C program that adds two numbers using these versatile tools.

Understanding Pointers

Before diving into the code, let’s establish a clear understanding of pointers. A pointer in C stores the memory address of another variable. It acts like an arrow pointing to the actual location of data in memory.


int num1 = 10;
int* ptr = &num1; // ptr points to the memory address of num1

In this example, num1 holds the value 10, and ptr is assigned its memory address using the & operator. Therefore, dereferencing the pointer (*ptr) returns the actual value stored at the address, which is 10 in this case.

Adding Numbers with Pointers

Now, let’s see how to use pointers to add two numbers. We can achieve this in three key steps:

  1. Declare variables: We’ll need two integer variables (num1 and num2) to store the numbers and a pointer variable (ptr1 and ptr2) to store their respective memory addresses.


int num1, num2;
int *ptr1, *ptr2;
  1. Assign addresses: Use the & operator to assign the memory addresses of num1 and num2 to their respective pointers.


ptr1 = &num1;
ptr2 = &num2;
  1. Perform addition: Dereference both pointers using *ptr1 and *ptr2 to access their actual values and add them. Store the result in a variable (sum).


sum = *ptr1 + *ptr2;

Putting it all Together

Combining these steps, we get the complete C program:


#include <stdio.h>

int main() {
  int num1, num2, sum;
  int *ptr1, *ptr2;

  // Get user input for numbers
  printf("Enter first number: ");
  scanf("%d", &num1);
  printf("Enter second number: ");
  scanf("%d", &num2);

  // Assign addresses and add
  ptr1 = &num1;
  ptr2 = &num2;
  sum = *ptr1 + *ptr2;

  // Print the result
  printf("Sum of %d and %d is: %d\n", num1, num2, sum);

  return 0;

This program prompts the user for two numbers, stores them in variables, assigns their memory addresses to pointers, adds the values accessed through dereferencing, and finally, prints the sum.

Benefits of Using Pointers

Using pointers for addition offers several advantages:

  • Flexibility: Pointers can reference various data types and dynamically access memory locations.
  • Efficiency: Passing pointers as arguments can be more efficient than passing large data structures by value.
  • Abstraction: Pointers can handle complex data structures and memory management, simplifying code for advanced operations.

Expanding Your Horizons

This is just a starting point for exploring pointers in C. You can further expand your knowledge by:

  • Learning about pointer arithmetic for advanced memory manipulation.
  • Implementing pointer-based functions for data structures like linked lists and trees.
  • Understanding memory allocation and deallocation techniques for efficient resource management.

By mastering pointers, you unlock a powerful toolset for writing efficient and flexible C programs, opening doors to more complex and sophisticated scenarios.


Learn coding the easy way. Find programming guides, examples and solutions with explanations.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button