>>18
Yeah, you're doing it wrong. It's
array + 4, which is nicer than
&array[4].
>>21
It's not harmful at all. The vector is required to be contiguous. In fact it's quite normal to do this with vectors of POD, as long as you don't keep the pointer around when you modify the vector (that should be obvious; the spec defines exactly which modifications invalidate pointers if you want more specifics). Typically you should check that the vector is non-empty though, because otherwise the access might be out of bounds. (The compiler optimizes away the dereferencing in return, but it's still technically undefined behaviour because you're dereferencing invalid memory. In some implementations, if you haven't put anything in the vector yet it won't even have allocated any memory, and the pointer could point anywhere!)
http://www.parashift.com/c++-faq-lite/containers.html#faq-34.3