I don't think really anyone has difficulty understanding the concept of a pointer. It's their usage that trips people up, and that most tutorials I've seen gloss over, which is where all the confusion stems from.
One simple example showing value semantics would’ve made it click for me, and things only get more interesting when you talk about performance.