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 */
|
|
|
|
|
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 8.5 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
การอ้างอิงสมาชิกภายในข้อมูลแบบโครงสร้างซ้อนก็ใช้วิธีการอ้างอิงเหมือนกับข้อมูลแบบโครงสร้างธรรมดา
เช่น บรรทัดที่ 21 x.one.name หมายถึง
การอ้างอิงถึงตัวแปร name ผ่านตัวแปรโครงสร้าง one
และตัวแปรโครงสร้าง x ตามลำดับ
หรือ บรรทัดที่ 24 x.two.name หมายถึง
การอ้างอิงถึงตัวแปร name ผ่านตัวแปรโครงสร้าง two
และตัวแปรโครงสร้าง x ตามลำดับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น