วันพุธที่ 17 กันยายน พ.ศ. 2557

06:57
8.5 ข้อมูลแบบโครงสร้างซ้อน  (nested  structures)
            บางครั้งเราสามารถประกาศข้อมูลแบบโครงสร้างซ้อนอยู่ภายในโครงสร้างได้ดังโปรแกรมตัวอย่างต่อไปนี้
โปรแกรมตัวอย่างที่  8.5 แสดงการประกาศข้อมูลแบบโครงสร้างซ้อนอยู่ภายในโครงสร้าง

/*             neststru.c              */
#include<stdio.h>                                                                      /*  บรรทัดที่  1  */
#include<conio.h>                                                                      /*  บรรทัดที่  2  */
struct      student                                                                       /*  บรรทัดที่  3  */
{                                                                                                   /*  บรรทัดที่  4  */
      char name[20];                                                                    /*  บรรทัดที่  5  */
      int age;                                                                                  /*  บรรทัดที่  6  */
};                                                                                               /*  บรรทัดที่  7  */
      struct      group                                                                          /*  บรรทัดที่  8  */
{                                                                                                 /*  บรรทัดที่  9  */
      struct      student  one;        /* nested structure  one */  /*  บรรทัดที่  10  */
      struct      student  two;         /* nested structure  two */   /*  บรรทัดที่  11  */
};                                                                                                   /*  บรรทัดที่  12  */
      struct      group  x = {                                               /*  บรรทัดที่  13  */
            {"Kannikar",25},                                                                    /*  บรรทัดที่  14  */
            {"Suraporn",32}                                                                    /*  บรรทัดที่  15  */
      };                                                                                              /*  บรรทัดที่  16  */
void main(void)                                                                          /*  บรรทัดที่  17  */
{                                                                                                   /*  บรรทัดที่  18  */
      clrscr();                                                                                     /*  บรรทัดที่  19  */
      printf("\n Person One :\n");                                                       /*  บรรทัดที่  20  */
      printf("Name = %s\n", x.one.name);                                        /*  บรรทัดที่  21  */
      printf("Age = %d\n", x.one.age);                                             /*  บรรทัดที่  22 */
      printf("\n Person Two :\n");                                                     /*  บรรทัดที่  23 */
      printf("Name = %s\n", x.two.name);                                          /*  บรรทัดที่  24  */
      printf("Age = %d\n", x.two.age);                                            /*  บรรทัดที่  25  */
      printf("\n\nPress any key back to program...");                         /*  บรรทัดที่  26  */
      getch();                                                                                       /*  บรรทัดที่  27*/
}                                                                                              /* บรรทัดที่  28  */
ผลลัพธ์ที่ได้จากโปรแกรม

แผนผังลำดับงาน: จอภาพ: Person One :  Name = Kannikar  Age = 25    Person Two :  Name = Suraporn  Age = 32    Press any key back to program ...
คำอธิบายโปรแกรม 
            จากโปรแกรมตัวอย่างที่  8.5  สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
            การอ้างอิงสมาชิกภายในข้อมูลแบบโครงสร้างซ้อนก็ใช้วิธีการอ้างอิงเหมือนกับข้อมูลแบบโครงสร้างธรรมดา
            เช่น  บรรทัดที่  21  x.one.name  หมายถึง  การอ้างอิงถึงตัวแปร  name  ผ่านตัวแปรโครงสร้าง  one  และตัวแปรโครงสร้าง  x  ตามลำดับ
            หรือ  บรรทัดที่  24  x.two.name  หมายถึง  การอ้างอิงถึงตัวแปร  name  ผ่านตัวแปรโครงสร้าง  two  และตัวแปรโครงสร้าง  x  ตามลำดับ

0 ความคิดเห็น:

แสดงความคิดเห็น