int val{ 100 };
int* ptr1 = (int*)val;
int* ptr2 = ptr1 + 5;
std::cout << ptr2 << '\n' << (int)ptr2 << std::endl;
In this code example the result of (int*)val is 00000064, but I don't understand why. I also don't understand why (int)ptr2 is 120.