Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โครงสร้างซ้อนในภาษา C คืออะไร?


โครงสร้างภายในโครงสร้าง (หรือ) โครงสร้างที่ซ้อนกัน

โครงสร้างภายในโครงสร้างอื่นเรียกว่าโครงสร้างแบบซ้อน

ลองพิจารณาตัวอย่างต่อไปนี้

struct emp{
   int eno;
   char ename[30];
   float sal;
   float da;
   float hra;
   float ea;
}e;

รายการทั้งหมดมาอยู่ในเบี้ยสามารถจัดกลุ่มและประกาศภายใต้โครงสร้างย่อยดังที่แสดงด้านล่าง

stuct emp{
   int eno;
   char ename[30];
   float sal;
   struct allowance{
      float da;
      float hra;
      float ea;
   }a;
}e;

สมาชิกส่วนในสุดในโครงสร้างที่ซ้อนกันสามารถเข้าถึงได้โดยการเปลี่ยนตัวแปรโครงสร้างที่เกี่ยวข้องทั้งหมด (จากด้านนอกสุดไปยังด้านในสุด) ด้วยสมาชิกโดยใช้ตัวดำเนินการจุด

โปรแกรม

โปรแกรมต่อไปนี้คือการสาธิตโครงสร้างแบบซ้อน (โครงสร้างภายในโครงสร้าง) -

#include<stdio.h>
//Declaring outer and inter structures//
struct Person//Main Structure//{
   char Name[500];
   int Age;
   char Gender;
   char temp;//To clear buffer//
   struct Address//Nested Structure//{
      char Apartment[500];
      char Street[500];
      char City[100];
      char State[100];
      int Zipcode;
   }a[20];//Nested Structure Variable//
   }p[20];//Main Structure Variable//
void main(){
   //Declaring variable for For loop//
   int i;
   //Reading User I/p//
   for (i=1;i<3;i++){//Declaring function to accept 2 people's data//
      printf("Enter the Name of person %d : ",i);
      gets(p[i].Name);
      printf("Enter the Age of person %d : ",i);
      scanf("%d",&p[i].Age);
      scanf("%c",&p[i].temp);//Clearing Buffer//
      printf("Enter the Gender of person %d : ",i);
      scanf("%c",&p[i].Gender);
      scanf("%c",&p[i].temp);//Clearing Buffer//
      printf("Enter the City of person %d : ",i);
      gets(p[i].a[i].City);
      printf("Enter the State of person %d : ",i);
      gets(p[i].a[i].State);
      printf("Enter the Zip Code of person %d : ",i);
      scanf("%d",&p[i].a[i].Zipcode);
      scanf("%c",&p[i].temp);//Clearing Buffer//
   }
   //Printing O/p//
   for (i=1;i<3;i++){
      printf("The Name of person %d is : %s\n",i,p[i].Name);
      printf("The Age of person %d is : %d\n",i,p[i].Age);
      printf("The Gender of person %d is : %c\n",i,p[i].Gender);
      printf("The City of person %d is : %s\n",i,p[i].a[i].City);
      printf("The State of person %d is : %s\n",i,p[i].a[i].State);
      printf("The Zip code of person %d is : %d\n",i,p[i].a[i].Zipcode);
   }
}

ผลลัพธ์

Enter the Name of person 1 : Enter the Age of person 1 : Enter the Gender of person 1 : Enter the City of person 1 : Enter the State of person 1 : Enter the Zip Code of person 1 : Enter the Name of person 2 : Enter the Age of person 2 : Enter the Gender of person 2 : Enter the City of person 2 : Enter the State of person 2 : Enter the Zip Code of person 2 : The Name of person 1 is :
The Age of person 1 is : 0
The Gender of person 1 is :
The City of person 1 is :
The State of person 1 is :
The Zip code of person 1 is : 0
The Name of person 2 is :
The Age of person 2 is : 0
The Gender of person 2 is :
The City of person 2 is :
The State of person 2 is :
The Zip code of person 2 is : 0