🌐
GeeksforGeeks
geeksforgeeks.org › c language › c-pointers
Pointers in C - GeeksforGeeks
A pointer is a variable that stores the memory address of another variable. Instead of holding a direct value, it holds the address where the value is stored in memory. It is the backbone of low-level memory manipulation in C.
Published: 2 weeks ago
🌐
W3Schools
w3schools.com › c › c_pointers.php
C Pointers
In the example above, we used the pointer variable to get the memory address of a variable (used together with the & reference operator). You can also get the value of the variable the pointer points to, by using the * operator (the dereference operator):
Discussions

Why Use Pointers in C? - Stack Overflow
I'm still wondering why in C you can't simply set something to be another thing using plain variables. A variable itself is a pointer to data, is it not? So why make pointers point to the data in... More on stackoverflow.com
🌐 stackoverflow.com
Genuine question: What’s hard about pointers?
Try using them for implementing a simple bubble sort algorithm, Then try doing the same without pointers. You'll know the difference. More on reddit.com
🌐 r/learnprogramming
38
28
February 14, 2022
ELI5: C pointers: how to use them, and why

They're also very useful to manipulate arrays. In c, if you say int a[], a is a pointer.

So if you do

int a[] = {0,3,2};

printf ("a[1]: %d", *(a+1));

You'll get "a[1]: 3" as the output. Very useful in many cases when trying to optimize for speed.

More on reddit.com
🌐 r/explainlikeimfive
15
19
July 18, 2013
A *good* tutorial about pointers in C
Are people on this subreddit seriously at a loss for how pointers work? More on reddit.com
🌐 r/programming
37
65
December 29, 2013
🌐
Reddit
reddit.com › r/c_programming › best pointers explanation
r/C_Programming on Reddit: Best Pointers Explanation
December 15, 2023 -

Could anyone recommend a video that provides a clear explanation of pointers in C programming? I've been struggling to understand them, and I'm looking for a resource that breaks down the concept effectively.

🌐
Programiz
programiz.com › c-programming › c-pointers
C Pointers (With Examples)
Here, 5 is assigned to the c variable. And, the address of c is assigned to the pc pointer. To get the value of the thing pointed by the pointers, we use the * operator. For example: int* pc, c; c = 5; pc = &c; printf("%d", *pc); // Output: 5
🌐
SDSU
edoras.sdsu.edu › doc › c › pointers-1.2.2
Everything you need to know about pointers in C
This is also a comment. This is output you’d see on your screen. ... A pointer is a memory address. ... Say you declare a variable named foo. ... This variable occupies some memory. On a PowerPC, it occupies four bytes of memory (because an int is four bytes wide).
🌐
Substack
alexanderobregon.substack.com › alexander obregon's substack › pointers in c for beginners
Pointers in C for Beginners - Alexander Obregon's Substack
January 12, 2026 - In C, memory is treated as a long sequence of bytes, and each byte sits at a numbered position called an address. Pointers hold those addresses in a typed way so that the compiler can tell what sort of object lives at that location.
🌐
Yale University
cs.yale.edu › homes › aspnes › pinewiki › C(2f)Pointers.html
C/Pointers
When the CPU wants to fetch a value from a particular location in main memory, it must supply an address: a 32-bit or 64-bit unsigned integer on typical current architectures, referring to one of up to 232 or 264 distinct 8-bit locations in the memory. These integers can be manipulated like any other integer; in C, they appear as pointers, a family of types that can be passed as arguments, stored in variables, returned from functions, etc.
🌐
freeCodeCamp
freecodecamp.org › news › pointers-in-c-programming
How to Use Pointers in C Programming
May 3, 2023 - We can think of it as a way to refer to a specific location in memory. To declare a pointer variable in C, we use the asterisk * symbol before the variable name.
Find elsewhere
🌐
Medium
lorenzopiombini.medium.com › pointers-in-c-2ad210278a51
Pointers in C. a Beginner guide. | by Lorenzo Piombini | Medium
September 13, 2024 - As you can see, all these three declarations are valid in C, the * operator is in a different position each statement, and that’s fine, the compiler won’t complain, it better to use NULL instead of the number 0 (zero), because this improve readability of the program(NULL is defined in <stdio.h>) ... Now our pointer pNumb contains the memory address of numb variable; we used the referencing operator & to get the memory address of the variable numb, then we assigned to the pointer pNumb.
🌐
TutorialsPoint
tutorialspoint.com › cprogramming › c_pointers.htm
Pointers in C
C pointer is the derived data type that is used to store the address of another variable and can also be used to access and manipulate the variable's data stored at that location.
🌐
Learn C
learn-c.org › en › Pointers
Pointers - Learn C - Free Interactive C Tutorial
The computer's memory is a sequential store of data, and a pointer points to a specific part of the memory. Our program can use pointers in such a way that the pointers point to a large amount of memory - depending on how much we decide to read from that point on.
🌐
Medium
medium.com › @Dev_Frank › pointers-in-c-422cccdbf2f6
POINTERS IN C. Pointer is a variable that stores the… | by Dev Frank | Medium
February 16, 2024 - Pointers are variable that stores the memory address of another variable. Instead of holding the actual value, it holds the location (address) of where the value is stored in the computer’s memory.
🌐
DEV Community
dev.to › heraldofsolace › almost-everything-you-need-to-know-about-pointers-in-c-53na
(Almost) Everything You Need To Know About Pointers in C - DEV Community
September 9, 2021 - If you run this program, you will see something like 0x7ffc2fc4ff27. That is the value of the pointer, which is the address of the variable a (this is in hexadecimal). This value is not fixed. If you run the program again, the value will likely change, because a will be stored somewhere else.
🌐
Simplilearn
simplilearn.com › home › resources › software development › pointers in c: a one-stop solution for using c pointers
Pointers in C: A One-Stop Solution for Using C Pointers
June 23, 2025 - A pointer in C is a variable pointing to the address of another variable. Explore C Pointer's ✓ types ✓ advantages ✓ disadvantages, and more. Start learning!
Address: 5851 Legacy Circle, 6th Floor, Plano, TX 75024 United States
🌐
freeCodeCamp
freecodecamp.org › news › pointers-in-c-are-not-as-difficult-as-you-think
Pointers in C Explained – They're Not as Difficult as You Think
August 11, 2020 - They store a garbage value (that is, memory address) of a byte that we don't know is reserved or not (remember int digit = 42;, we reserved a memory address when we declared it). Suppose we dereference a wild pointer and assign a value to the memory address it is pointing at. This will lead to unexpected behaviour since we will write data at a memory block that may be free or reserved. To make sure that we do not have a wild pointer, we can initialize a pointer with a NULL value, making it a null pointer.
🌐
BYJUS
byjus.com › gate › pointers-in-c
Pointers in C
August 1, 2022 - The pointers in C language refer to the variables that hold the addresses of different variables of similar data types. We use pointers to access the memory of the said variable and then manipulate their addresses in a program.
🌐
WsCube Tech
wscubetech.com › resources › c-programming › pointers
Pointers in C Language (Uses, Types, Examples)
July 27, 2026 - Learn in this tutorial about pointers in C with types and examples. Understand their basics, operations, and uses for better memory handling in C programming.
🌐
Guru99
guru99.com › home › c programming › pointers in c: what is pointer in c programming? types
Pointers in C: What is Pointer in C Programming? Types
June 30, 2026 - A pointer in C is a variable that stores the address of another variable. A pointer can also refer to another pointer or to a function. A pointer can be incremented or decremented to point to the next or previous memory location.
🌐
The Knowledge Academy
theknowledgeacademy.com › blog › pointers-in-c
Pointers in C: Definition, Types, and Use Cases
July 16, 2026 - Pointers in C are variables that store memory addresses, allowing for dynamic memory management, efficient array handling, and direct manipulation of data.
Top answer
1 of 4
42

One common place where pointers are helpful is when you are writing functions. Functions take their arguments 'by value', which means that they get a copy of what is passed in and if a function assigns a new value to one of its arguments that will not affect the caller. This means that you couldn't write a "doubling" function like this:

void doubling(int x)
{
    x = x * 2;
}

This makes sense because otherwise what would the program do if you called doubling like this:

doubling(5);

Pointers provide a tool for solving this problem because they let you write functions that take the address of a variable, for example:

void doubling2(int *x)
{
    (*x) = (*x) * 2; 
}

The function above takes the address of an integer as its argument. The one line in the function body dereferences that address twice: on the left-hand side of the equal sign we are storing into that address and on the right-hand side we are getting the integer value from that address and then multiply it by 2. The end result is that the value found at that address is now doubled.

As an aside, when we want to call this new function we can't pass in a literal value (e.g. doubling2(5)) as it won't compile because we are not properly giving the function an address. One way to give it an address would look like this:

int a = 5;
doubling2(&a);

The end result of this would be that our variable a would contain 10.

2 of 4
20

A variable itself is a pointer to data

No, it is not. A variable represents an object, an lvalue. The concept of lvalue is fundamentally different from the concept of a pointer. You seem to be mixing the two.

In C it is not possible to "rebind" an lvalue to make it "point" to a different location in memory. The binding between lvalues and their memory locations is determined and fixed at compile time. It is not always 100% specific (e.g. absolute location of a local variable is not known at compile time), but it is sufficiently specific to make it non-user-adjustable at run time.

The whole idea of a pointer is that its value is generally determined at run time and can be made to point to different memory locations at run time.