Pointers code snippet
Summary
Source code
C++: pointers.cpp
#include <iostream>
using namespace std;
int main() {
// int variable
int intVar = 777;
cout << "intVar: " << intVar << endl;
// pointer to int
int *pIntVar;
// make pIntVar pointing to intVar
// using "reference operator"
pIntVar = &intVar;
cout << "pIntVar: " << pIntVar << endl;
// to access a value stored in
// the intVar using pointer pIntVar
// use "dereference operator"
cout << "*pIntVar: " << *pIntVar << endl << endl;
// if intVar changes, *pIntVar changes too
// and vice versa
intVar = 123;
cout << "intVar: " << intVar << endl;
cout << "*pIntVar: " << *pIntVar << endl;
*pIntVar = 321;
cout << "intVar: " << intVar << endl;
cout << "*pIntVar: " << *pIntVar << endl << endl;
// pointer is a variable
// so it's possible to declare one more pointer
// and make an assignment
int *anotherPointer;
anotherPointer = pIntVar;
// now, changing *anotherPointer leads
// to altering intVar too
*anotherPointer = 0;
cout << "intVar: " << intVar << endl;
cout << "*pIntVar: " << *pIntVar << endl;
cout << "*anotherPointer: " << *anotherPointer << endl << endl;
// one can also declare a pointer to pointer
int **pointerToPointer;
pointerToPointer = &pIntVar;
cout << "pIntVar: " << pIntVar << endl;
cout << "*pIntVar: " << *pIntVar << endl;
cout << "pointerToPointer: " << pointerToPointer << endl;
cout << "*pointerToPointer: " << *pointerToPointer << endl;
cout << "**pointerToPointer: " << **pointerToPointer << endl;
return 0;
}
Sample run
C/C++
intVar: 777
pIntVar: 0x22ff74
*pIntVar: 777
intVar: 123
*pIntVar: 123
intVar: 321
*pIntVar: 321
intVar: 0
*pIntVar: 0
*anotherPointer: 0
pIntVar: 0x22ff74
*pIntVar: 0
pointerToPointer: 0x22ff70
*pointerToPointer: 0x22ff74
**pointerToPointer: 0