 First, an ultra-quick review of what an array is. Instead of using separate, similarly-named variables to hold a series of related values, such as the scores on five quizzes, we can associate those five values with a single name. It's a lot like using subscripted variables in algebra, except that our index numbers always begin with zero, and we put them in square brackets, because we're using a text editor, not a word processor. Let's put this array into a program. To declare an array, you give its data type, in this case int, the name of the array, and in square brackets the number of elements in the array. Unlike other languages, which initialize arrays upon declaration, C does no initialization for a declaration of this form. So what's in the array? Whatever happened to be in the memory locations allocated to the array. Let me show you. Let's print five items, and then the elements in the array. To access an element, you put its index number in square brackets. Let's build this program, and the compiler, because we have all warnings turned on, will tell us that we're using the elements in the array without being initialized. Despite the warnings, we'll run the program, and we'll see, essentially, random numbers coming up. It's whatever was lying around in memory. If an array isn't automatically initialized, what can you do? Well, you could initialize each element individually. Set scores sub zero to 65. Set scores sub one to 82. Scores sub two to 94, and so on, but that's a lot of work. And what if we had, say, an array of 30 days worth of temperatures? This would be a really cumbersome task. Instead, you can initialize an array when it's declared. Put an assignment operator, and then, in braces, put the elements that you want in the array. Let's build the program. No more warnings, and when we run the program, we get the array exactly as we initialized it. What happens if you put in fewer items than the array length? Let's find out. The answer is that the remaining entries are filled with zeros. This can be handy if you want to set an array with lots of elements to all zeros. For example, in this array that tells how many steps I took per day, and I have 365 entries, I can set them all to zero by initializing the first element, and all the rest will become zero as well. To show you that this is indeed the case, I can say steps at mid-year, and print out daily steps at index number 182, and it is indeed zero. There's one more way to initialize arrays. What if I wanted to set all of my daily steps to zero, except the days at index numbers 30, 64, and 310? Here's how I'd do it. I'd say in square brackets, element number 30 is set to say 8,040, the element at index 64 should be set to 7,500, and the element at index 310 should be set to 9,525. This is a way to initialize what is referred to as a sparse array, but I haven't encountered it often. This is one of those things where you should learn to recognize it in other people's code more than this is a thing you're going to be using all the time. Initializing everything to zero or initializing every element in an array is much more common.