C संरचना और कार्य

इस ट्यूटोरियल में, आप स्ट्रक्चर चर को एक फ़ंक्शन के तर्क के रूप में पास करना सीखेंगे। आप उदाहरणों की सहायता से किसी फ़ंक्शन से संरचना लौटाना सीखेंगे।

अंतर्निहित प्रकारों के चर के समान, आप संरचना चर को किसी फ़ंक्शन में भी पास कर सकते हैं।

फंक्शंस को पास करना

हमने आपको इन ट्यूटोरियल्स को सीखने की सलाह दी है, इससे पहले कि आप सीखें कि फंक्शन्स को कैसे पास करना है।

  • सी संरचनाओं
  • C कार्य करता है
  • उपयोगकर्ता-परिभाषित फ़ंक्शन

यहां बताया गया है कि आप किसी फ़ंक्शन को संरचना कैसे दे सकते हैं

 #include struct student ( char name(50); int age; ); // function prototype void display(struct student s); int main() ( struct student s1; printf("Enter name: "); // read string input from the user until is entered // is discarded scanf("%(^)%*c", s1.name); printf("Enter age: "); scanf("%d", &s1.age); display(s1); // passing struct as an argument return 0; ) void display(struct student s) ( printf("Displaying information"); printf("Name: %s", s.name); printf("Age: %d", s.age); )

आउटपुट

 नाम दर्ज करें: बॉन्ड दर्ज करें उम्र: 13 जानकारी प्रदर्शित करना नाम: बॉन्ड आयु: 13 

यहां, प्रकार struct studentका एक संरचनात्मक चर s1 बनाया जाता है। वेरिएबल स्टेटमेंट को display()उपयोग करके फंक्शन में जाता display(s1);है।

एक समारोह से वापसी संरचना

यहां बताया गया है कि आप किसी फ़ंक्शन से संरचना कैसे वापस कर सकते हैं:

 #include struct student ( char name(50); int age; ); // function prototype struct student getInformation(); int main() ( struct student s; s = getInformation(); printf("Displaying information"); printf("Name: %s", s.name); printf("Roll: %d", s.age); return 0; ) struct student getInformation() ( struct student s1; printf("Enter name: "); scanf ("%(^)%*c", s1.name); printf("Enter age: "); scanf("%d", &s1.age); return s1; ) 

यहां, getInformation()फ़ंक्शन को s = getInformation();स्टेटमेंट का उपयोग करके कहा जाता है । फ़ंक्शन प्रकार की संरचना लौटाता है struct student। लौटी संरचना main()फ़ंक्शन से प्रदर्शित होती है ।

ध्यान दें कि, वापसी का प्रकार getInformation()भी है struct student

संदर्भ द्वारा पासिंग स्ट्रक्चर

आप संदर्भ द्वारा भी संरचना को पास कर सकते हैं (इसी तरह से आप संदर्भ द्वारा निर्मित प्रकार के चर पास करते हैं)। हमारा सुझाव है कि आगे बढ़ने से पहले आप संदर्भ ट्यूटोरियल द्वारा पास पढ़ें।

संदर्भ के माध्यम से पास होने के दौरान, संरचना चर के मेमोरी पते फ़ंक्शन को पास किए जाते हैं।

 #include typedef struct Complex ( float real; float imag; ) complex; void addNumbers(complex c1, complex c2, complex *result); int main() ( complex c1, c2, result; printf("For first number,"); printf("Enter real part: "); scanf("%f", &c1.real); printf("Enter imaginary part: "); scanf("%f", &c1.imag); printf("For second number, "); printf("Enter real part: "); scanf("%f", &c2.real); printf("Enter imaginary part: "); scanf("%f", &c2.imag); addNumbers(c1, c2, &result); printf("result.real = %.1f", result.real); printf("result.imag = %.1f", result.imag); return 0; ) void addNumbers(complex c1, complex c2, complex *result) ( result->real = c1.real + c2.real; result->imag = c1.imag + c2.imag; ) 

आउटपुट

 पहले नंबर के लिए, वास्तविक भाग दर्ज करें: 1.1 काल्पनिक भाग दर्ज करें: -2.4 दूसरे नंबर के लिए, वास्तविक भाग दर्ज करें: 3.4 काल्पनिक भाग दर्ज करें: -3.2 result.real = 4.5 result.imag = -5.6 

उपरोक्त कार्यक्रम में, तीन संरचना चर c1, c2 और परिणाम का पता addNumbers()फ़ंक्शन को दिया जाता है । यहां, परिणाम संदर्भ द्वारा पारित किया गया है।

जब परिणाम चर अंदर addNumbers()बदल जाता है, तो main()फ़ंक्शन के अंदर परिणाम चर भी तदनुसार बदल दिया जाता है।

दिलचस्प लेख...