 Let's take another look at the program from the previous video that created a data structure to represent information about food and had three separate variables, brand 1, brand 2, and brand 3, each of type struct food. Now, if you had a lot of related integers, you wouldn't put them all into separate variables. Instead, you'd make an array and put the items there using braces as an initializer. You can take these three variables and make them into an array also. We'll call it brands, make it length 3, and then inside of braces, we're going to initialize all three data structures using commas as separators, just as we would with any other array. Now, you can use a loop to iterate through that array. We'll have an integer i that starts at 0, goes up through but not including 3, and increments, and all of this code becomes the loop body. Instead of using brand 1, we'll say brands sub i, and make that change everywhere. In here, instead of always displaying a 1, we'll want to display the brand number, and that'll be our index plus 1, so that our counter, at least as far as the user is concerned, starts with 1 instead of 0, and there's the last change that we have to make for the loop. Once we've done that, all this duplicated code goes away, we can build and run it, and it works. Can you have arrays as members of a structure? Yes, you can, as in this example, that has an array of quarterly sales as a member of a data structure that defines a sales region. In this printf, reading from left to right, the east variable contains an array member named quarterly sales, from which we extract the element at index 2. Let's make this example a little bit more realistic by changing the region ID to an array of characters, and let's create an array of these data structures, and then write a loop to add up the regional totals. In this expression, when area is 1 and quarter is 2, region array sub-area selects this structure, then the quarterly sales array member of that structure, and the element at index 2 of that array. Finally, structures can contain other structures as members. Here's a structure that describes a point by its x, y cartesian coordinates. You can create a structure describing a circle that uses a point structure for the center and a double for the radius. This expression, read from right to left, accesses the x-member of the center member of the wheel variable. And here's another structure for describing a rectangle by its top left and bottom right corners, each of which is a point structure. This expression, read from left to right, says that the card variable, which contains a bottom right member, contains a y-member that we want to access. As you can see from these examples, structures are a good way of describing complex data.