Accessing the Data in a One-Dimensional Array
This section will cover the general syntax for putting data into a specific location in an array and for getting it back out again.
Before we delve into the syntax there is one important thing to know about the indexing of arrays. The first index in an array is not 1, but is instead 0. So, if you had an array with 3 elements in it then the elements would have indices 0, 1, and 2. More generally, if there is an array with n elements in it the indices will range from 0 to n-1. This is a key bit of information to remember. Mistakes in array indices are the cause of many bugs in computer programs. If there are n elements in an array and you try to access the element of the array at index n, then you will get a subscript out of range error because the index of the last cell is n-1, not n.
Now that we have established how array indices work we will cover how to use them. First we need to create an array. For this example, we will create an array of 10 integers called grades.
Generally it is not considered good programming style to have constant numbers like 10 throughout your code. Instead, it is considered better form to make a sharp-defined constant to use in place of the number to indicate the size of the array. In this way, you can also use that same sharp-defined constant when you are looping through the array. As a whole, this will make your code much more readable; for anyone reading your code, sharp-defined names convey information that simple numbers cannot.
Now we will cover how to assign a value into a given location in an array. Arrays in C have a particular indexing scheme that may not seem very intuitive to begin with. The first location in the array has the index 0 not 1. There are a few ways to make sense of this. You can either think of there being an offset of one for all of the cells or you can think of the index number as counting the number of cells before the given cell in the array. The first location in the array has no cells before it and so has the index 0. The second location has one cell before it and so has the index 1 and so on. The way to assign to a particular location in an array is to specify the cell and assign a piece of data into it as follows:
grades = 95;
This will assign the integer value of 95 into the first location in the array grades. Unlike in the declaration of an array where the number in the square brackets cannot be a variable, it can and usually is in the case of assigning and retrieving data from an array. Consider assigning the data from the ith position in the array into a variable called grade.
grade = grades[i];
Now let's say you wanted to add five to the ith position in an array:
grades[i] += 5;
So as you can see, you simply can use a particular cell in the array as if it were its own particular variable of the specified type.