someclass *ptr = arr[3]; //this is the same as
someclass *ptr; //creates a pointer (to a someclass object)
ptr = arr[3]; //takes the pointer in arr[3] and stores it in ptr
//(this means the 4th element of the array "arr" is a pointer)
1 2 3 4 5 6
someclass *ptr[3]; //creates an array of someclass pointers (length 3)
//i.e.
ptr[0]; //refers to a someclass pointer
*ptr[0]; //refers to a someclass object
ptr; //is a pointer to a someclass pointer (the first in the array of someclass pointers)