Comment by Zak
14 hours ago
Pointers are famously difficult to learn and reason about even though the basic principles are simple. Programming in a style that requires direct manipulation of pointers when it's not actually necessary is usually regarded as unwise because it's so hard to get right.
OP had no problem with pointers prior to trying C++. I think there is a case to be made that C(++) makes pointers unnecessarily confusing and there is no real disconnect between understanding pointers in theory and in practice otherwise
And C++ makes everything extra confusing with the capability of operator overloading.
That has to be one of the worst features ever added to a language.
> C++ makes everything extra confusing
> I head massive problems with this pointer stuff
no, OP explicitly had problem after getting introduced to pointer concept
Pointers aren't hard, it's C/C++ that make them complicated. Addresses and indirection in any assembly language are simple and straightforward, easy and even intuitive once you start actually writing programs.
Tell that to the thousands of comp sci students who drop out every year because they don't like programming in C!
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.
...thats the reason why I love managed environments like C#/Java/etc :-))