http://www.amazon.com/Memory-Programming-Concept-Frantisek-F...
A rather expensive book but stellar reviews. I borrowed it from the library. It's very concise too.
For C++ a lot of people still recommend "Accelerated C++":
http://www.amazon.com/Accelerated-C-Practical-Programming-Ex...
because it teaches you "canonical" C++ instead teaching you "C with classes," which seems to be a common complaint among veteran C++ programmers. It's very readable too.
I'm going to pick up "Writing Great Code":
http://www.amazon.com/Write-Great-Code-Understanding-Machine...
because it explains computer architecture. Once you start programming in C/C++ you are much closer to the metal and having an understanding of the architecture will lead to better choices.
http://www.amazon.com/Algorithmics-Spirit-Computing-David-Ha...
The New Turing Omnibus
http://www.amazon.com/The-New-Turing-Omnibus-Excursions/dp/0...
is also good, as is Code by Charles Petzold.
http://www.amazon.com/Code-Language-Computer-Hardware-Softwa...
AFTER EDIT: While I thought about the first three books I mentioned, I thought of another, Write Great Code, Volume 1: Understanding the Machine by Randall Hyde.
http://www.amazon.com/Write-Great-Code-Understanding-ebook/d...
The Unix Programming Environment was published in 1984. I read it over 20 years later and was astonished at how well it had aged. For a technical book from the 80's, it is amazingly lucid and well-written. It pre-dates modern unix, so things have changed but much that goes unstated in newer books (for brevity) is explicit in UPE. (Plus, the history itself is illuminating.) It gave me a much deeper understanding of how programs actually run over computer hardware. Examples in C are old-school and take a bit of close reading but oh so rewarding. https://www.amazon.com/Unix-Programming-Environment-Prentice...
Mastering Algorithms in C. Another fantastically well-written book that shows (with practical examples) how to implement common algorithms. This is just such a great book! https://www.amazon.com/Mastering-Algorithms-Techniques-Sorti...
Also:
Code (Petzold). This one is truly language-agnostic. Others have mentioned it already. Can't recommend enough if you're iffy on the internals of computers and programming. https://www.amazon.com/Code-Language-Computer-Hardware-Softw...
Write Great Code (Volumes I and II). Randall Hyde's books are fantastic explications of the underlying computer operations. Examples are in assembly or pseudo-code but easy to understand. https://www.amazon.com/Write-Great-Code-Understanding-Machin...