introduction to pointers in cpp

9/17/2025

diagram of Pointers in C++ Pointers Tutorial

Go Back

Introduction to Pointers in C++ (With  Example)

What are Pointers in C++?

In C++, pointers are variables that store the memory address of another variable. Instead of holding actual data, a pointer holds the location where data is stored in memory. Pointers are a powerful feature of C++ that allow developers to work directly with memory, which is useful for:

  • Dynamic memory allocation

  • Efficient array and string manipulation

  • Building data structures like linked lists, trees, and graphs

  • Optimizing performance in system-level programming

Understanding pointers is crucial for becoming a skilled C++ developer.


 diagram of Pointers in C++ Pointers Tutorial

Why Developers Use Pointers

Imagine a software company with many developer objects. Instead of copying entire developer data each time, a pointer can be used to reference an existing developer. This reduces memory usage and improves performance.

For example, if one developer object is large, copying it to another variable is expensive. Using pointers allows us to just copy the address, not the full data.


Syntax of Pointers in C++

Declaring a pointer is simple:

datatype *pointerName;
  • datatype → Type of data the pointer can point to

  • * → Indicates it is a pointer

  • pointerName → The name of the pointer variable


Developer Example: Using Pointers

Let's take a Developer class and show how to use pointers with it.

#include <iostream>
using namespace std;

class Developer {
public:
    string name;
    string language;

    void display() {
        cout << "Developer: " << name
             << ", Language: " << language << endl;
    }
};

int main() {
    Developer dev1;
    dev1.name = "Alice";
    dev1.language = "C++";

    // Pointer to Developer object
    Developer *devPtr = &dev1;

    // Accessing members using pointer
    devPtr->display();

    // Changing data using pointer
    devPtr->language = "Python";
    devPtr->display();

    return 0;
}

Output

Developer: Alice, Language: C++
Developer: Alice, Language: Python

Explanation:

  • Developer *devPtr = &dev1;devPtr stores the memory address of dev1.

  • devPtr->display(); — The -> operator is used to access members using a pointer.

  • We modified language using the pointer, which directly changed the original object.


Pointers and Memory Addresses

We can also print memory addresses using the & operator:

int age = 25;
int *ptr = &age;

cout << "Age: " << age << endl;
cout << "Address of age: " << &age << endl;
cout << "Pointer holds: " << ptr << endl;
cout << "Value via pointer: " << *ptr << endl;

This helps developers understand how pointers store addresses and how * (dereference operator) retrieves the value from the address.


Key Points to Remember

  • Always initialize pointers before using them.

  • Use nullptr to indicate a pointer is not pointing anywhere.

  • Free dynamically allocated memory using delete to avoid memory leaks.

  • The -> operator is used to access members of a class/struct using a pointer.

Conclusion

Pointers are a core concept of C++ programming. They provide developers with direct control over memory, making programs more efficient and flexible. By mastering pointers, C++ developers can build complex data structures, manage memory effectively, and write high-performance code.

Learning pointers might seem challenging initially, but practicing with real-world examples — like the Developer class shown above — will help you gain confidence.