I want to store some data in a variable (and I know variables are stored in memory). Does that data in memory get encrypted? Also, is it possible for software to be able to read
sarnold's answer on memory protection is correct. However, there are attacks that can circumvent many forms of memory protection. These include covert channels, residual information in newly allocated memory, DMA-based attacks like firewire, attacking a trusted device w/ access, attacking kernel mode software, physical attacks, etc. A combination of encryption and integrity checking of memory can help with some of these attacks.
If you're interested in encrypted memory, here's a few projects for you to look into.
MIT AEGIS Processor
SecureCore architecture
SecureME architecture
Air Force's FPGA-based HAVEN system
Tamper proof, crypto coprocessors might be used for some of this. They're just not as general purpose.
An alternative getting popular again is putting the whole platform, OS and all, in managed or type safe code. This allows the type system to do most of memory protection for you. Examples include Scheme48, SPIN, JX, and Verve operating systems and software.