Store the value of one struct in another struct
जिस प्रकार हम एक वेरिएबल की वैल्यू को दूसरे वेरिएबल में स्टोर कर सकते हैं उसी प्रकार हम एक स्ट्रक्चर के मेम्बर की वैल्यू को दूसरे स्ट्रक्चर के मेम्बर में स्टोर कर सकते हैं या एक स्ट्रक्चर वेरिएबल की वैल्यू को दूसरे स्ट्रक्चर वेरिएबल में स्टोर कर सकते हैं।
Example:-
नीचे 👇 दिए गए उदाहरण में एक स्ट्रक्चर की वैल्यू को दो अलग-अलग तरीकों से कॉपी करना समझाया गया हैं।
Output:-
Mukesh 6356984578 96000
Mukesh 6356984578 96000
Mukesh 6356984578 96000
Explain Example:-
ऊपर दिए गए उदाहरण में ध्यान देगी स्ट्रक्चर में प्रयुक्त स्ट्रिंग Array name तथा phone को कॉपी करने के लिए e2.name = e1.name क्या प्रयोग नहीं किया जा सकता हैं। इसलिए यह कार्य strcpy() फंक्शन के माध्यम से किया जा रहा हैं। strcpy() की परिभाषा string.h header file(हेडर फाइल) में होती हैं इसलिए हमने प्रोग्राम के शुरुआत में #include<string.h> लिखा हैं। वहीं दूसरी ओर यदि पूरा स्ट्रक्चर एक साथ कॉपी करना हो तो यह कार्य e3 = e1 स्टेटमेंट से किया जा सकता हैं।
Nested Structure
जिस प्रकार एक लूप के अंदर दूसरे लूप को चलाने पर उसे नेस्टेड लूप करते हैं, उसी प्रकार एक स्ट्रक्चर के अंदर यदि दूसरे स्ट्रक्चर के वेरिएबल को डिक्लेअर किया जाए तो इसे स्ट्रक्चर की नेस्टिंग करते हैं।
Example:-
नीचे 👇 दिए गए उदाहरण में एक structure(स्ट्रक्चर) में दूसरे structure variable(स्ट्रक्चर वेरिएबल) को प्रयोग में लेना स्पष्ट किया गया हैं।
Output:-
Enter Employee Name: Mukesh
Enter Employee phone Number: 63775763232
Enter Employee Salary: 56566
Employee Name: Mukesh
Employee phone: 63775763232
Employee phone: 12391884
Explain Example:-
ऊपर 👆 दिए गए उदाहरण में ध्यान दें कि स्ट्रक्चर emp को डिक्लेअर करते वक्त उसमें struct info i के माध्यम से दूसरे स्ट्रक्चर info का variable भी बनाया जा रहा हैं। अतः यदि emp के माध्यम से info के मेंबर को प्रयोग करना हो तो ऐसी स्थिति में e.i.phone जैसे स्टेटमेंट प्रयोग(इसमें दो बार डॉट ऑपरेटर प्रयोग किया गया है) करते हुए यह कार्य किया जा सकता हैं।
ऊपर 👆 दिए गए उदाहरण को निम्न 👇 चित्र से समझा जा सकता हैं।
Structure and function
अन्य वेरिएबल की तरह स्ट्रक्चर वेरिएबल या उसके मेंबर को भी फंक्शन में इनपुट के रूप में भेजा जा सकता हैं।
Example:-
नीचे दिए गए उदाहरण में स्ट्रक्चर के विभिन्न मेंबर को अलग-अलग वेरिएबलो में फंक्शन show() में इनपुट के रूप में भेजा गया है:
Output:-
Employee Name: Mukesh
Employee Phon: 6377595922
Employee Salary: 86000
Explain Example:-
ऊपर दिए गए उदाहरण में show(e.name, e.phone, e.sal); के माध्यम से स्ट्रक्चर वेरिएबल e के मेंबर name, phone तथा sal को show() फंक्शन के इनपुट के रूप में भेजा जा रहा हैं।
Example:-
नीचे दिए गए उदाहरण में स्ट्रक्चर वेरिएबल फंक्शन show() में इनपुट के तौर पर भेजा गया हैं।
Output:-
Employee Name: Mukesh
Employee Phone: 6377586822
Employee Salary: 62000
Explain Example:-
ऊपर दिए गए उदाहरण में show() फंक्शन को पूरा स्ट्रक्चर ही स्ट्रक्चर वेरिएबल a को इनपुट के रूप में भेजा जा रहा हैं। ध्यान दें कि show() फंक्शन में emp स्ट्रक्चर प्रयोग करने के लिए उसे main() फंक्शन से पहले डिक्लेअर किया गया हैं। चूंकि emp स्ट्रक्चर main() फंक्शन से पहले डिक्लेअर हो चुका है, अतः वह ग्लोबल डाटा टाइप बन चुका हैं, जिससे इस प्रोग्राम के सभी फंक्शन इसे प्रयोग करने में सक्षम हो गए हैं
Structure and pointer
जिस प्रकार अन्य वेरिएबल के address(एड्रेस) को स्टोर करने के लिए pointer(पॉइन्टर) का प्रयोग किया जा सकता है उसी प्रकार structure variable(स्ट्रक्चर वेरिएबल) के एड्रेस को भी उस structure(स्ट्रक्चर) के समान data-type(डाटा-टाइप) के pointer(पॉइन्टर) वेरिएबल में स्टोर किया जा सकता हैं। structure variable(स्ट्रक्चर वेरिएबल) के एलिमेंट को pointer द्वारा प्रयोग करने के लिए -> ऑपरेटर का प्रयोग किया जाता हैं।
Example:-
नीचे दिए गए उदाहरण में structure member(स्ट्रक्चर मेंबर) को pointer(पॉइन्टर) के माध्यम से प्रयोग किया गया है
Output:-
Employee Name: Mukesh Kumar
Employee Phone: 6354786922
Employee Salary: 89000
Explain Example:-
ऊपर दिए गए उदाहरण में स्ट्रक्चर वेरिएबल e का एड्रेस पॉइन्टर वेरिएबल p में स्टोर करवाते हुए p के माध्यम से स्ट्रक्चर मेंबर किया गया है ध्यान देगी क्योंकि P पॉइन्टर हैं अतः इसके माध्यम से स्ट्रक्चर के मेंबर को प्रयोग करने के लिए डॉट(.) की जगह पर -> चिन्ह प्रयोग किया जाता हैं।
0 Comments