संरचना विभिन्न डेटाटाइप चरों का एक संग्रह है, जिसे एक ही नाम के तहत एक साथ समूहीकृत किया जाता है।
संरचना की विशेषताएं
संरचना की विशेषताओं को नीचे समझाया गया है -
-
असाइनमेंट ऑपरेटर का उपयोग करके विभिन्न डेटाटाइप के सभी संरचना तत्वों की सामग्री को इसके प्रकार के किसी अन्य संरचना चर में कॉपी करना संभव है।
-
जटिल डेटाटाइप को संभालने के लिए, किसी अन्य संरचना के भीतर एक संरचना बनाना बेहतर होता है, जिसे नेस्टेड संरचनाएं कहा जाता है।
-
एक फ़ंक्शन के लिए एक संपूर्ण संरचना, एक संरचना के अलग-अलग तत्वों और संरचना के पते को पारित करना संभव है।
-
स्ट्रक्चर पॉइंटर्स बनाना भी संभव है।
संरचनाओं की घोषणा
संरचना घोषणा का सामान्य रूप इस प्रकार है -
datatype member1; struct tagname{ datatype member2; datatype member n; };
यहां, संरचना कीवर्ड है।
टैगनाम संरचना का नाम निर्दिष्ट करता है।
सदस्य1, सदस्य2 डेटा आइटम हैं।
उदाहरण के लिए,
struct book{ int pages; char author [30]; float price; };
उदाहरण
स्थानीय दायरे में संरचना के लिए सी कार्यक्रम निम्नलिखित है -
#include<stdio.h> struct{ char name[20]; int age; int salary; char add[30]; }emp1,emp2; int manager(){ struct{ char name[20]; int age; int salary; char add[50]; }manager ; manager.age=27; if(manager.age>30) manager.salary=65000; else manager.salary=55000; return manager.salary; } int main(){ printf("enter the name of emp1:"); //gets(emp1.name); scanf("%s",emp1.name); printf("\nenter the add of emp1:"); scanf("%s",emp1.add); printf("\nenter the salary of emp1:"); scanf("%d",&emp1.salary); printf("\nenter the name of emp2:"); // gets(emp2.name); scanf("%s",emp2.name); printf("\nenter the add of emp2:"); scanf("%s",emp2.add); printf("\nenter the salary of emp2:"); scanf("%d",&emp2.salary); printf("\nemp1 salary is %d",emp1.salary); printf("\nemp2 salary is %d",emp2.salary); printf("\nmanager salary is %d",manager()); return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
enter the name of emp1:hari enter the add of emp1:hyderabad enter the salary of emp1:4000 enter the name of emp2:lucky enter the add of emp2:chennai enter the salary of emp2:5000 emp1 salary is 4000 emp2 salary is 5000 manager salary is 55000