सी पास पते और कार्य करने के लिए संकेत

इस ट्यूटोरियल में, आप उदाहरणों की सहायता से पते और बिंदुओं को तर्कों के रूप में पारित करना सीखेंगे।

सी प्रोग्रामिंग में, पते को कार्यों के तर्क के रूप में पारित करना भी संभव है।

फ़ंक्शन परिभाषा में इन पतों को स्वीकार करने के लिए, हम पॉइंटर्स का उपयोग कर सकते हैं। ऐसा इसलिए है क्योंकि पतों का उपयोग पतों को संग्रहीत करने के लिए किया जाता है। आइए एक उदाहरण लेते हैं:

उदाहरण: पास एड्रेस टू फंक्शन्स

 #include void swap(int *n1, int *n2); int main() ( int num1 = 5, num2 = 10; // address of num1 and num2 is passed swap( &num1, &num2); printf("num1 = %d", num1); printf("num2 = %d", num2); return 0; ) void swap(int* n1, int* n2) ( int temp; temp = *n1; *n1 = *n2; *n2 = temp; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 num1 = 10 संख्या 2 = 5

Num1 और num2 का पता swap()उपयोग करके फ़ंक्शन को दिया जाता है swap(&num1, &num2);

संकेत n1 और n2 फ़ंक्शन परिभाषा में इन तर्कों को स्वीकार करते हैं।

 void swap(int* n1, int* n2) (… ) 

जब swap()फ़ंक्शन के अंदर * n1 और * n2 बदले जाते हैं , तो मुख्य और () फ़ंक्शन के अंदर num1 और num2 भी बदले जाते हैं।

swap()फ़ंक्शन के अंदर , *n1और *n2स्वैप किया गया। इसलिए, num1 और num2 की अदला-बदली भी की जाती है।

नोटिस जो swap()कुछ भी वापस नहीं कर रहा है; अपनी वापसी प्रकार है void

उदाहरण 2: कार्य करने के लिए पॉइंटर्स पास करना

 #include void addOne(int* ptr) ( (*ptr)++; // adding 1 to *ptr ) int main() ( int* p, i = 10; p = &i; addOne(p); printf("%d", *p); // 11 return 0; )

यहां, पी में संग्रहित मूल्य, *pशुरू में 10 है।

हमने तब सूचक पी को addOne()फ़ंक्शन में पास किया। Ptr पॉइंटर को addOne()फ़ंक्शन में यह पता मिलता है।

फ़ंक्शन के अंदर, हमने 1 उपयोग करके ptr पर संग्रहीत मान बढ़ाया (*ptr)++;। चूंकि ptr और p पॉइंटर्स दोनों का पता समान है, इसलिए *pअंदर main()भी 11 है।

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