 with this form of array declaration. You can drop the 5 from the square brackets, and C will count the number of items in the braces and figure out how big the array is. But that's not a great idea, because if you have a lot of items, there's no easy way to get that length back. Unlike other languages that have constructs like this, C doesn't have any such thing. You are responsible for keeping track of the array's length. Additionally, you are also responsible for making sure that you stay within the bounds of the array. If I try to do something like this to print element number 20,000 from this array, there's no error message, there's no warning. If I'm lucky, when I run the program, it'll crash. If I'm unlucky, the program will retrieve whatever happens to be at the memory address corresponding to the index number I gave, and my program will proceed to give me incorrect results. The main point here, you are responsible for keeping track of an array's length, and you are responsible for making sure that you stay within its bounds. The compiler won't help you out, and the runtime won't guarantee an error.