The original C pointer is not hard to understand at all. It is just an address + a data type. If any one finds it difficult, they can review computer organization 101 about memory addressing.
C++ pointer is another beast. It has a much richer behaviour.