#include using namespace std; int main() { int ex[] = {1, 2, 3, 4, 5}; int *intPtr; void *voidPtr; // This is legal intPtr = ex; // this is equivalent // intPtr = &ex[0]; // Is this? // ex = intPtr; // Dereference intPtr //cout << *intPtr << endl; // Pointer arithmetic //cout << *(intPtr + 1) << endl; //cout << intPtr << endl; //cout << (intPtr + 1) << endl; voidPtr = ex; // Dereference voidPtr //cout << *( (int *) voidPtr ) << endl; // Arithmetic with voidPtr //cout << *((int *) (voidPtr+1)) << endl; //cout << *((int *) (voidPtr+2)) << endl; //cout << *((int *) (voidPtr+3)) << endl; //cout << *((int *) (voidPtr+4)) << endl; // More examples int x = 42; intPtr = &x; cout << "x is " << x << " and " << "intPtr is " << intPtr << endl; // Dereference intPtr cout << "*intPtr is " << *intPtr << endl; return 0; }