Yes, you accessed beyond the end of the array. What you did is stomp memory on your program stack. On most architectures the stack grows downwards in memory, which means that you stomped one byte of allocated stack space.
Regardless, you won't get an exception on a memory stomp. Depending on your OS you'll either get an access violation or a segmentation fault, but not an exception.
It varies.
You're depending on non-standard behavior. The compiler, the system, and the execution environment play a very big role in controlling what will and what won't throw an exception. Generally, an exception is only thrown if the program tries to read or write outside of its segment (a segmentation fault). This is of course not always the case.