BCA / B.Tech 13 min read

Parameter and Argument Passing in Hindi

Parameters and Arguments in Data Structure in Hindi | डाटा स्ट्रक्चर में पैरामीटर और आर्ग्युमेंट्स  हिंदी में :


किसी भी प्रोग्रामिंग भाषा में जब हम एक फ़ंक्शन बनाते हैं, तो उसे इनपुट की आवश्यकता होती है ताकि वह कुछ कार्य कर सके। ये इनपुट्स पैरामीटर्स और आर्ग्युमेंट्स कहलाते हैं। पैरामीटर और आर्ग्युमेंट पासिंग एक फ़ंक्शन के लिए अत्यंत महत्वपूर्ण अवधारणाएँ हैं, क्योंकि इनके बिना हम किसी भी डेटा को फ़ंक्शन में पास नहीं कर सकते।

पैरामीटर और आर्ग्युमेंट्स के बीच का अंतर, इनके प्रकार और पास करने के तरीके प्रोग्रामिंग के लिए बहुत महत्वपूर्ण होते हैं। इस लेख में हम पैरामीटर और आर्ग्युमेंट पासिंग की पूरी जानकारी प्राप्त करेंगे और विभिन्न प्रकार के पासिंग के उदाहरण भी देखेंगे।

पैरामीटर और आर्ग्युमेंट्स क्या हैं? (What are Parameters and Arguments?)

पैरामीटर (Parameter):

  • पैरामीटर वह वेरिएबल होता है जो फ़ंक्शन डिक्लेरेशन (घोषणा) के समय इस्तेमाल होता है। यह फ़ंक्शन को यह बताता है कि वह किस प्रकार का डेटा इनपुट के रूप में प्राप्त करेगा।
  • यह फ़ंक्शन में एक प्लेसहोल्डर की तरह होता है, जो फ़ंक्शन को कॉल करते समय एक वैल्यू लेता है।
  • जब हम किसी फ़ंक्शन को परिभाषित करते हैं, तो पैरामीटर उसके अंदर दिए जाते हैं।
उदाहरण:

\void add(int a, int b) {  // a और b पैरामीटर हैं
    int sum = a + b;
    printf("%d", sum);
}

आर्ग्युमेंट (Argument):

  • आर्ग्युमेंट वह वास्तविक डेटा होता है जिसे हम फ़ंक्शन को कॉल करते समय पास करते हैं।
  • यह पैरामीटर के स्थान पर वैल्यू प्रदान करता है, और इसी डेटा के आधार पर फ़ंक्शन कार्य करता है।
  • जब हम किसी फ़ंक्शन को कॉल करते हैं, तो आर्ग्युमेंट्स उसमें दिए जाते हैं।

उदाहरण:

add(5, 10);  // 5 और 10 आर्ग्युमेंट्स हैं
यहाँ पर, add(5, 10) फ़ंक्शन में 5 और 10 आर्ग्युमेंट्स के रूप में पास किए गए हैं, और ये पैरामीटर a और b के स्थान पर काम करेंगे।


Parameter and Argument Passing in Hindi

Types of Parameter and Argument Passing in Data Structure in Hindi | पैरामीटर और आर्ग्युमेंट पास करने के प्रकार :

पैरामीटर और आर्ग्युमेंट को पास करने के दो मुख्य तरीके होते हैं:

पास बाई वैल्यू (Pass by Value):

इस विधि में फ़ंक्शन को पैरामीटर के रूप में दिए गए आर्ग्युमेंट की एक कॉपी बनाई जाती है। इसका मतलब है कि फ़ंक्शन के अंदर उस वैल्यू को बदलने से मूल आर्ग्युमेंट पर कोई प्रभाव नहीं पड़ता।
पास बाई वैल्यू का उपयोग तब किया जाता है जब हम नहीं चाहते कि फ़ंक्शन इनपुट डेटा को बदले।

उदाहरण:

void changeValue(int x) {
    x = 20;  // यह केवल x की कॉपी को बदलेगा
}

int main() {
    int a = 10;
    changeValue(a);  // a का मान 10 ही रहेगा
    printf("%d", a);  // यह 10 प्रिंट करेगा
}
इस उदाहरण में, a का मान 10 है, और उसे फ़ंक्शन changeValue में पास किया गया। फ़ंक्शन में x = 20 के बावजूद, a का वास्तविक मान नहीं बदला क्योंकि वह पास बाई वैल्यू के माध्यम से पास किया गया था।

पास बाई रेफरेंस (Pass by Reference):

  • इस विधि में फ़ंक्शन को पैरामीटर के रूप में दिए गए आर्ग्युमेंट का वास्तविक एड्रेस (पता) पास किया जाता है। इसका मतलब है कि फ़ंक्शन उस आर्ग्युमेंट के वास्तविक मान को बदल सकता है।
  • पास बाई रेफरेंस का उपयोग तब किया जाता है जब हम चाहते हैं कि फ़ंक्शन डेटा को सीधे बदल सके।

उदाहरण:

void changeValue(int *x) {
    *x = 20;  // यह x का वास्तविक मान बदलेगा
}

int main() {
    int a = 10;
    changeValue(&a);  // a का एड्रेस पास किया गया
    printf("%d", a);  // यह 20 प्रिंट करेगा
}
इस उदाहरण में, a का मान 10 है, लेकिन जब इसे पास बाई रेफरेंस से फ़ंक्शन में भेजा गया, तो फ़ंक्शन ने इसे 20 में बदल दिया, और इस बदलाव का प्रभाव मूल वैरिएबल a पर भी पड़ा।


Parameter and Argument Passing in Hindi


Other Types of Parameter and Argument Passing in Data Structure in Hindi | पैरामीटर और आर्ग्युमेंट पासिंग के अन्य प्रकार :

कुछ अन्य प्रकार के पैरामीटर और आर्ग्युमेंट पासिंग होते हैं जो विभिन्न प्रोग्रामिंग भाषाओं में उपयोग किए जाते हैं:

पास बाई कन्शटेंट रेफरेंस (Pass by Constant Reference):

यह विधि पास बाई रेफरेंस के समान होती है, लेकिन इसमें फ़ंक्शन को पैरामीटर के रूप में पास की गई वैल्यू को बदलने की अनुमति नहीं होती। यह तब उपयोगी होती है जब हम किसी बड़े डेटा स्ट्रक्चर को पास करना चाहते हैं लेकिन उसे अनजाने में बदलने से बचाना चाहते हैं।

उदाहरण:

void printArray(const int *arr, int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
}

डिफॉल्ट पैरामीटर (Default Parameters):

डिफॉल्ट पैरामीटर का उपयोग तब होता है जब हम किसी फ़ंक्शन में कुछ पैरामीटर्स को वैकल्पिक बनाना चाहते हैं। इसका मतलब है कि अगर उपयोगकर्ता ने कुछ आर्ग्युमेंट्स नहीं दिए, तो डिफॉल्ट मान का उपयोग किया जाएगा।

उदाहरण:

void display(int x = 10) {  // x की डिफॉल्ट वैल्यू 10 है
    printf("%d", x);
}

int main() {
    display();  // यह 10 प्रिंट करेगा
    display(20);  // यह 20 प्रिंट करेगा
}

वेरिऐडिक फंक्शंस (Variadic Functions):

वेरिऐडिक फंक्शंस वे होते हैं जो अज्ञात संख्या में आर्ग्युमेंट्स को ले सकते हैं। इनका उपयोग तब होता है जब हमें किसी फ़ंक्शन में अलग-अलग संख्या में आर्ग्युमेंट्स पास करने की आवश्यकता होती है।

उदाहरण:

#include

void printNumbers(int num, ...) {
    va_list args;
    va_start(args, num);
    for (int i = 0; i < num; i++) {
        int value = va_arg(args, int);
        printf("%d ", value);
    }
    va_end(args);
}


Advantages of Parameter and Argument Passing in Data Structure in Hindi | लाभ : 

  • कोड की पुन: प्रयोज्यता (Code Reusability): फ़ंक्शंस को विभिन्न इनपुट के साथ कई बार उपयोग किया जा सकता है। जब हम पैरामीटर का उपयोग करते हैं, तो हम एक ही फ़ंक्शन को विभिन्न डेटा के लिए पुनः उपयोग कर सकते हैं।
  • इससे कोड को दोबारा लिखने की आवश्यकता कम हो जाती है और विकास प्रक्रिया तेज होती है।

  • कोड की स्पष्टता और संगठितता (Clarity and Organization): फ़ंक्शन में पैरामीटर का उपयोग करने से यह स्पष्ट हो जाता है कि फ़ंक्शन को किस प्रकार के डेटा की आवश्यकता है। इससे कोड पढ़ना और समझना आसान होता है।
  • यह संरचना को सुव्यवस्थित बनाता है, जिससे भविष्य में कोड को बनाए रखना और उसमें परिवर्तन करना सरल होता है।
  • डाटा एनकैप्सुलेशन (Data Encapsulation): पैरामीटर का उपयोग डेटा को फ़ंक्शन में इनपुट करने के लिए किया जाता है, जो इसे एक सुरक्षित तरीके से प्रोसेस करता है।
  • यह डेटा को सीधे बदलने से रोकता है, जिससे कोड में त्रुटियों की संभावना कम हो जाती है।
  • संसाधनों का अनुकूलन (Resource Optimization): पास बाई रेफरेंस विधि का उपयोग करके बड़े डेटा स्ट्रक्चर को सीधे फ़ंक्शन में पास किया जा सकता है, बिना उनकी कॉपी बनाए। यह मेमोरी का कुशल उपयोग करता है।
  • इससे प्रोग्राम की गति और प्रदर्शन में सुधार होता है।
  • लचीलापन (Flexibility): डिफॉल्ट पैरामीटर का उपयोग करके फ़ंक्शन में वैकल्पिक इनपुट की अनुमति दी जा सकती है, जिससे फ़ंक्शन को और अधिक लचीला बनाया जा सकता है।
  • वेरिऐडिक फ़ंक्शंस का उपयोग करके अज्ञात संख्या में आर्ग्युमेंट्स को प्रोसेस किया जा सकता है, जिससे कोड को और अधिक सक्षम बनाया जा सकता है।

Disadvantages of Parameter and Argument Passing in Data Structure in Hindi | हानियाँ : 

  • जटिलता (Complexity):फ़ंक्शन के पास बहुत अधिक पैरामीटर होने पर इसे समझना और उपयोग करना मुश्किल हो सकता है।
  • जटिलता बढ़ने से कोड का रखरखाव भी कठिन हो सकता है, और नए डेवलपर्स के लिए इसे समझना मुश्किल हो जाता है।
  • संभावित त्रुटियाँ (Potential Errors): यदि फ़ंक्शन में गलत आर्ग्युमेंट पास किए जाएँ, तो यह त्रुटियों का कारण बन सकता है। इस तरह की त्रुटियों को पकड़ना और ठीक करना चुनौतीपूर्ण हो सकता है।
  • विशेषकर पास बाई रेफरेंस के दौरान, अगर किसी फ़ंक्शन के माध्यम से डेटा को बदल दिया जाए, तो इससे मूल डेटा में अनचाहे परिवर्तन हो सकते हैं।
  • प्रदर्शन में कमी (Performance Issues): पास बाई वैल्यू विधि का उपयोग करते समय बड़े डेटा स्ट्रक्चर की कॉपी बनाना मेमोरी और समय की दृष्टि से महंगा हो सकता है।
  • यह प्रदर्शन को प्रभावित कर सकता है, खासकर जब फ़ंक्शन को बार-बार कॉल किया जाता है।
  • डिपेंडेंसी (Dependency): जब एक फ़ंक्शन कई पैरामीटर्स पर निर्भर होता है, तो उसके प्रभावी कार्य करने के लिए सही आर्ग्युमेंट्स की आवश्यकता होती है।
  • इससे फ़ंक्शन की उपयोगिता सीमित हो जाती है, क्योंकि सभी आवश्यक आर्ग्युमेंट्स प्रदान करना जरूरी होता है।
  • लंबी सिग्नेचर (Long Signatures): यदि फ़ंक्शन के पैरामीटर्स की संख्या अधिक हो जाती है, तो फ़ंक्शन सिग्नेचर लंबा और जटिल हो सकता है, जिससे इसे समझना कठिन हो सकता है।
  • इससे कोड की पठनीयता भी प्रभावित होती है।