It will probably give you a segmentation fault, which means your program tried to access memory that it wasn't allowed to access, the OS caught that, and is writing out your program's memory to a core file so you can debug it. Your program also halts. So in general, going beyond the bounds of an array is considered bad for this reason. There are other things that will cause seg faults, and you will see them quite often once you get into pointers. They're helpful because you can find out what you're doing wrong.
Every programming language needs a looping construct of some sort.
Any time you want to traverse through an array or a list or even some math calculations, chances are you'll need or at least want a loop. Now here are some examples of how loops really look. Here's factorial using a while loop. You can break out of a loop at any time with return or break. Another call, continue, will skip the rest of this iteration through the loop.