Did you know that in x86 machine code, the 1011 opcode represents a "move" operation? Are you going to remember all x86 and x64 opcodes, just in case you need to read some machine code with the naked eye?
What you should strive for is not detailed knowledge of every single things that happens when you program. This might make you an useful, over-specialized expert on a
small problem domain (make no mistake, there's no way to be an over-specialized expert on a
large problem domain) but will harm you in the long term, as the marginal value of more specialization decreases sharply, and leaves you with less knowledge of other technologies (or real-life issues) than other people.
Programming knowledge is often structured as a framework for knowing what things tend to work and what things don't (not necessarily
how they work) and ways to find missing information when you actually need it. Being able to read and understand a third-party API or file format in an hour or two is far more valuable (as far as being a versatile programmer goes) than knowing the bloody details of C++ compilers.
Plus, as others have already said, don't bother with this right now: even if you learn the high-level concepts of C++, you are bound to stumble upon low-level details sooner or later.
Quote:Original post by Katie
"What's the difference between a pointer and a reference" shows up a lot as an interview question as well. And it's amazing how many people think that a reference can't be null because that's what some of the textbooks say[1].
In a well-behaved C++ program, references can't be null. Prefixing every single statement in a book about C++ with «
in a well-behaved C++ program, » would be silly, so the reader is expected to keep that in mind while reading.
In fact, if you make a blanket statement about C++ without specifying otherwise, people will assume that you are discussing well-behaved programs. Saying "references can be null" is just going to lead to misunderstandings and pointless arguments, even though it's technically true that in misbehaving C++ programs you can manage to create a reference r such that &r is a null pointer.