| 
  
  
    
      | 
          
            | CAUTION: While it is possible to initialize structure variables by using a "list", this method does not apply when the structure uses apvector, apmatrix, or apstring. |  |  |  	struct TREE_TYPE{
 int month;
 int day;
 int year;
 };
 
 int main(void)
 {
 TREE_TYPE treePlanted =  { 04, 02, 1980 };
//filling by list
 TREE_TYPE treeHarvested =  { 06, 11, 2001 };
 . . .
   
 As with all variables, structures
can be filled by assignment, with user input, or from a
file.  Notice how the dot (.) operator is used to reference each member of
the structure in the examples below: 
		
			
				| By Assignment: | By User Input: |  
				| . . . struct STUDENT_TYPE
 {
 apstring name, street, city, state, zip;
 int age;
 double IDnum;
 double grade;
 } ;
 
 int main(void)
 {
 //  Declare a struct
 STUDENT_TYPE student1;
 
 // initialize the members of the 
				struct
 student1.name = '"Garfield";
 student1.street = "123 Mouse Lane";
 student1.city = "Catsville";
 student1.state = "PAW";
 student1.zip = "12345";
 student1.age = 3;
 student1.IDnum = 101010101;
 student1.grade = 98.5;
 . . .
   | struct STUDENT_TYPE {
 apstring name, street, city, state, zip;
 int age;
 double IDnum;
 double grade;
 } ;
 
 int main(void)
 {
 //  Declare an array of structs
 apvector<STUDENT_TYPE> roster(10);
 
 // fill the array of structs
 for (int i = 0; i<10; i++)
 {
 cout<<"Please enter info "
 <<"for student "<<i+1<<endl;
 cout<<"Enter the name:  ";
 getline(cin, roster[ i ].name );
 …
 cout<"Enter the age:  ";
 cin>> roster[ i ].age;
 . . .
 |  
 
  
 It is possible to use a structure to define another
structure, thus creating "nested" structures :
 
 struct ADDRESS_TYPE
 {
 apstring street, city, zipcode;
 };
 
 struct STUDENT_TYPE
 {
 apstring name;
 ADDRESS_TYPE address;
 int age;
 double IDnum;
 double grade;
 };
 |