This extends to incrementing by more than 1: x_ptr += 3 will increment x_ptr by 3 times the size of the datatype it is pointing to (e.g. if it is an int, x_ptr will be incremented by 12 bytes)
Why Pointer
To allow a function to modify the value of a variable (by passing a pointer to the variable into the function)
To pass the address of the first element of an array to a function so that it can access all the elements in the array