To amend to H2C03's answer...
Your first deref takes you into the array 1 dimmension. Specifically it leaves you pointing at the entry for '1'.
What most people here don't seem to entirely have figured out is what's happening next. At this point 'p' is still considered a pointer. It believe it contains the address '1'. When you do the '+1' you are actually getting pointer arithmetic. Since sizeof(int) is (typically) 4, you are simply printing the first element of the matrix +4. Thus +2 converts to +8 since pointer arithmetic is always done in terms of the size of the 'thing' the pointer points at. And so you get 5 and 9.
A quick disasm of the code will show.
mov eax, DWORD PTR ?p@@3PAPAHA ; p
mov ecx, DWORD PTR [eax] ; deref of p (which is '1')
add ecx, 4 ; let's just +4 it and push it as the arg to printf
push ecx
push OFFSET $SG3670
call _printf