Skip to content

Instantly share code, notes, and snippets.

@sokil
Last active August 9, 2019 06:48
Show Gist options
  • Save sokil/7d62334c235edcec415d to your computer and use it in GitHub Desktop.
Save sokil/7d62334c235edcec415d to your computer and use it in GitHub Desktop.
C++ pointers and dereferencing
/**
* Compile and execute:
* g++ pointer.c -o pointer && ./pointer
*/
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
// define variable
int value = 42;
cout << "Pointer\n";
// define pointer to variable
int* pointer = &value;
// same as above
// int *pointer = &value;
cout << " Reference: " << pointer << " of type " << typeid(pointer).name() << "\n"; // 0x7ffcaeedcc24 of type Pi
cout << " Dereferenced value: " << *pointer << "\n"; // 42
cout << "Double pointer\n";
int** double_pointer;
double_pointer = &pointer;
cout << " Reference: " << double_pointer << " of type " << typeid(double_pointer).name() << "\n"; // 0x7ffcaeedcc28 of type PPi
cout << " Dereferenced value: " << *double_pointer << " of type " << typeid(*double_pointer).name() << "\n"; // 0x7ffcaeedcc24 of type Pi
cout << " Dereferenced value: " << **double_pointer << " of type " << typeid(**double_pointer).name() << "\n"; // 42 of type i
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment