Pointers can also have other pitfalls, especially when your process is threaded or uses system global values. Essentially in any concurrent system dealing with I/O, external APIs or IPC.
If you are using pointers, there is no guarantee that the values of the data in the location will be the same as they were. Other threads/processes can change the values on you.
If you need the value to be the same as when you entered the function, you either need to stop your process from being pre-empted (varies between OSes), call by reference, or utilise some sort of semaphor or mutex.
I can't believe I know this stuff :-o
Anyhow, if you're going to use linux/unix there are a lot of very nice, but non-ansi things to be aware of. By all means utilise them, but don't rely on them.
Assembler is still easy....just not MIPS RISC. Well, it's easy.....but time consuming. A lot like moving a mountain with a pair of tweezers, a grain at a time.
Anyway, yeah look out for the teach yourself c++ book. it's good value. When pointers and casting make my eyes glaze over, I look at that book.