I used to think I was incapable of learning "real" programming because I didn't get C. When I later read a book on programming in assembly, I realized that everything that had felt so complex was actually not so difficult. C pointer syntax is weird and doesn't parse naturally for many people, especially programming novices who might not yet have a solid grasp on what/how/why they're doing anything.
Right, but it's hard to tell how much confusion is caused by C syntax vs the idea of a memory address.
In particular I think people are very confused by declaring pointers and the overloaded meaning of the dereference operator.