Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer References and Dereferences | Pointers
C Basics

bookReferences and Dereferences

Pointers are built around two operators:

  • The address-of operator &.
  • The dereference operator *.

Address-of Operator

The address-of operator, represented by &, allows us to directly interact with our computer's RAM. Using & lets you obtain the actual memory address of an object.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Note
Note

The format specifier used to print addresses (pointers) is %p.

Addresses are typically expressed in hexadecimal notation.

Dereference Operator

Conversely, the * operator gives you the resident's name when given their address. So, how can we employ this operator if we're not directly dealing with addresses? If you have an expression like &x, which returns the address of the x variable, applying the * operator to it (*&x) gives you the value of the variable stored at that address.

Note
Note

Essentially, *&x is the same as x.

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Note
Note

Don't mix up the dereference operator (*x) with the multiplication operator (x*y).

Taak

Swipe to start coding

  • Create an integer array of 5 elements and populate it.
  • Retrieve the address of the third element.
  • Increment the address of the third element and dereference the address obtained.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 2
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain the difference between the address-of and dereference operators with an example?

What does hexadecimal notation look like in memory addresses?

Can you show how to use these operators in a simple code snippet?

close

Awesome!

Completion rate improved to 2.63

bookReferences and Dereferences

Veeg om het menu te tonen

Pointers are built around two operators:

  • The address-of operator &.
  • The dereference operator *.

Address-of Operator

The address-of operator, represented by &, allows us to directly interact with our computer's RAM. Using & lets you obtain the actual memory address of an object.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Note
Note

The format specifier used to print addresses (pointers) is %p.

Addresses are typically expressed in hexadecimal notation.

Dereference Operator

Conversely, the * operator gives you the resident's name when given their address. So, how can we employ this operator if we're not directly dealing with addresses? If you have an expression like &x, which returns the address of the x variable, applying the * operator to it (*&x) gives you the value of the variable stored at that address.

Note
Note

Essentially, *&x is the same as x.

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Note
Note

Don't mix up the dereference operator (*x) with the multiplication operator (x*y).

Taak

Swipe to start coding

  • Create an integer array of 5 elements and populate it.
  • Retrieve the address of the third element.
  • Increment the address of the third element and dereference the address obtained.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 2
single

single

some-alt