C will let you declare structure variables inside other structures. This is very useful. It means that you can create a structure (perhaps called person) which keeps track of a person. You could then put a field of this type inside other structures. The bank structure could contain a person item in each customer item. A library could put a person item in each "borrower" and so on...
On the right you can see an example of this in action. The name and address items have been combined to form a person structure which we place inside an account item. This means that if I need to store just person information (for perhaps a credit card or mortgage structure) I can use the person structure in there as well.
#define MAX_CUST 50 #define NAME_LENGTH 30 #define ADDR_LENGTH 60 /* Create a person structure */ struct person { char name [NAME_LENGTH] ; char address [ADDR_LENGTH] ; int age ; } ; /* Create a customer structure */ struct customer { struct person person_details ; int account ; int balance ; int overdraft ; } ;