Ok since everyone else already answered I'm just going to guess that "a+1" sends a decimal value instead of a octal or hex value and so some garbage value would be printed and then another garbage value.
EDIT:
Hmm guess not must do some automatic type conversion.
a is an array if you outputed it will give you the address in the memory of the array. Say a is 0x42313 then (a+1) is 0x42314 but *(a+1) would give you the value in the memory which would be 2.