BCA / B.Tech 10 min read

Parameter & Argument Passingin Hindi

Parameter and Argument Passing in C++ in Hindi |  C++ में पैरामीटर और आर्गुमेंट पासिंग :


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

इस लेख में हम पैरामीटर और आर्गुमेंट पासिंग की अवधारणाओं को विस्तार से समझेंगे, और उनके विभिन्न प्रकारों पर चर्चा करेंगे।

पैरामीटर क्या है? (What is a Parameter?)

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

उदाहरण (Example of Parameter)

#include <iostream>
using namespace std;

void display(int num) {  // यहाँ 'num' पैरामीटर है
    cout << "The number is: " << num << endl;
}

int main() {
    display(5);  // फ़ंक्शन कॉल
    return 0;
}
ऊपर दिए गए उदाहरण में, display फ़ंक्शन में int num एक पैरामीटर है, जो फ़ंक्शन के अंदर पास किए गए डेटा को पकड़ता है।


आर्गुमेंट क्या है? (What is an Argument?)

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

उदाहरण (Example of Argument) :

int main() {
    display(5);  // यहाँ '5' आर्गुमेंट है, जो पैरामीटर 'num' को पास किया जा रहा है
    return 0;
}
ऊपर के उदाहरण में, 5 वह आर्गुमेंट है जो पैरामीटर num में पास किया जा रहा है।

Difference between Parameter and Argument in C++ in Hindi | पैरामीटर और आर्गुमेंट के बीच अंतर :

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

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

Types of Parameter and Argument Passing in C++ in Hindi | C++ में पैरामीटर और आर्गुमेंट पासिंग के प्रकार :

C++ में, आर्गुमेंट्स को फ़ंक्शन में तीन मुख्य तरीकों से पास किया जा सकता है:

कॉपि द्वारा पासिंग (Pass by Value)
रेफरेंस द्वारा पासिंग (Pass by Reference)
पोइंटर द्वारा पासिंग (Pass by Pointer)
आइए इन तीनों तरीकों को विस्तार से समझते हैं:

1. Pass by Value in C++ in Hindi | कॉपि द्वारा पासिंग :

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

उदाहरण (Example of Pass by Value)

#include <iostream>
using namespace std;

void modify(int num) {
    num = 10;  // पैरामीटर 'num' में बदलाव
}

int main() {
    int a = 5;
    modify(a);  // आर्गुमेंट के रूप में 'a' पास करना
    cout << "The value of a is: " << a << endl;  // 'a' की वैल्यू अपरिवर्तित रहेगी
    return 0;
}
आउटपुट:

csharp
Copy code
The value of a is: 5
ऊपर के उदाहरण में, modify फ़ंक्शन में a की कॉपी पास की जाती है, इसलिए a के मूल मान पर कोई प्रभाव नहीं पड़ता।

2. Pass by Reference in C++ in Hindi | रेफरेंस द्वारा पासिंग :

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

उदाहरण (Example of Pass by Reference)

#include <iostream>
using namespace std;

void modify(int &num) {
    num = 10;  // पैरामीटर 'num' में बदलाव
}

int main() {
    int a = 5;
    modify(a);  // 'a' को रेफरेंस द्वारा पास करना
    cout << "The value of a is: " << a << endl;  // 'a' की वैल्यू बदल जाएगी
    return 0;
}
आउटपुट:

The value of a is: 10
यहाँ, modify फ़ंक्शन में a का रेफरेंस पास किया जाता है, इसलिए जब फ़ंक्शन के अंदर बदलाव किया जाता है, तब a का मूल मान भी बदल जाता है।

3. Pass by Pointer in C++ in Hindi | पोइंटर द्वारा पासिंग :

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

उदाहरण (Example of Pass by Pointer)

#include <iostream>
using namespace std;

void modify(int *num) {
    *num = 10;  // 'num' पॉइंटर के द्वारा वेरिएबल के मान को बदलना
}

int main() {
    int a = 5;
    modify(&a);  // 'a' का एड्रेस पास करना
    cout << "The value of a is: " << a << endl;  // 'a' की वैल्यू बदल जाएगी
    return 0;
}
आउटपुट:

The value of a is: 10
यहाँ पर modify फ़ंक्शन में a का एड्रेस पास किया जाता है और फ़ंक्शन के अंदर उस वेरिएबल के वास्तविक मान को बदला जाता है।

Advantages and Disadvantages of Parameter and Argument Passing in C++ in Hindi | पैरामीटर और आर्गुमेंट पासिंग के फायदे और नुकसान :

कॉपि द्वारा पासिंग (Pass by Value)

फायदे:

  • यह सुरक्षित होता है क्योंकि मूल वेरिएबल पर कोई प्रभाव नहीं पड़ता।
  • फंक्शन के अंदर की गई कोई भी गलती मूल डेटा को प्रभावित नहीं करती।

नुकसान:

  • अधिक मेमोरी का उपयोग होता है क्योंकि डेटा की कॉपी बनाई जाती है।
  • अगर वेरिएबल का साइज़ बड़ा है, तो कॉपी करना समय और संसाधनों की दृष्टि से महंगा हो सकता है।

Pass by Reference and Pass by Pointer in C++ in Hindi | रेफरेंस और पोइंटर द्वारा पासिंग :

फायदे:

  • मेमोरी की बचत होती है क्योंकि डेटा की कॉपी नहीं बनाई जाती।
  • मूल डेटा को सीधे संशोधित किया जा सकता है।

नुकसान:

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