This chapter not only explored complex structures, but also reviewed nearly all the concepts we've explored in previous chapters.
We learned about various ways to access arrays of structures, sub-structures within structures, and arrays of structures within a structure. Each version of our carddeck.c program included a review of what was changed in that version.
We also learned about PRNGs and used a system-supplied PRNG to shuffle our deck of cards.
Throughout this chapter, we developed a complex program using stepwise refinement as we added structures and operations to these structures. More significantly, we got an in-depth view of how a program might change over its development life cycle. When we add or change structures, we also need to add or change the routines that manipulate those structures. This chapter demonstrated the software development process first described in Chapter 1,Running Hello, World!.
In the next two chapters...