Main menu

Pages

Pointer in C with Example – The Complete Beginner-Friendly Guide (2025)

Pointer in C with Example – The Complete Beginner-Friendly Guide


Pointer for Beginner

Working with the C programming language without understanding pointers is like trying to drive a car while ignoring the steering wheel. You might move, but you won't go far. This beginner-friendly guide breaks down pointers in the simplest way possible, with clear examples you can test instantly.

What This Guide Covers

  • What pointers are and why they matter
  • How to declare and initialize pointers
  • Dereferencing and pointer arithmetic
  • Pointers with arrays and functions
  • Common pointer errors and best practices

What Is a Pointer in C?

A pointer is a variable that stores the memory address of another variable.

Simply put:

  • A normal variable stores a value
  • A pointer stores where that value is located in memory

Simple Example


int x = 10;
int *p = &x;

Here, p doesn't hold 10 — it holds the address of x.

Why Are Pointers Important?

  • Direct memory access
  • More efficient programs
  • Essential for arrays, strings, and dynamic memory
  • Used in system-level programming

How to Declare a Pointer

Syntax:

dataType *pointerName;

Examples:


int *p;
float *fp;
char *cp;

Common Mistake: Beginners often think *p means multiplication — here it means “pointer to”.

How to Initialize a Pointer

Use the address-of operator &:


int x = 20;
int *p = &x;

Dereferencing a Pointer

Dereferencing means accessing the value stored at the pointer’s address.


int x = 5;
int *p = &x;

printf("%d", *p);  // Output: 5

Pointer Example in C (Full Program)


#include <stdio.h>

int main() {
    int x = 30;
    int *p = &x;

    printf("Value of x: %d\n", x);
    printf("Address of x: %p\n", &x);
    printf("Pointer p stores: %p\n", p);
    printf("Value at pointer p: %d\n", *p);

    return 0;
}

Explanation

  • x stores 30
  • p stores the address of x
  • *p gives the value of x

Pointer and Memory Addresses


printf("%p", &x);

Each variable lives in a unique memory location.

Pointer Arithmetic


int arr[3] = {10, 20, 30};
int *p = arr;

printf("%d\n", *p);   // 10
p++;
printf("%d\n", *p);   // 20

Pointers and Arrays


int arr[3] = {1, 2, 3};
int *p = arr;

printf("%d", *(p + 1)); // 2

Pointers and Functions

Swap Example:


void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

Pointers to Pointers


int x = 10;
int *p = &x;
int **pp = &p;

Common Pointer Errors

  • Uninitialized pointer
  • Dangling pointer
  • NULL pointer misuse

Best Practices

  • Always initialize pointers
  • Check for NULL before dereferencing
  • Avoid unnecessary pointer arithmetic
  • Never return pointers to local variables
  • Free memory after usage

Conclusion

Pointers in C look scary at first, but once you understand memory, addresses, and dereferencing, they become one of the most powerful features of the language. Mastering pointers is the key to mastering C.

FAQs

1. What is a pointer in C ?
A pointer stores the memory address of another variable.

2. What does * mean ?
The dereference operator.

3. Can a pointer be NULL ?
Yes.

4. Are pointers and arrays the same ?
No, but closely related.

5. Why use pointers in functions ?
Because they allow modifying the original value.

Comments