Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में पास बाय वैल्यू या पास बाय रेफरेंस में कौन बेहतर है?

C++ में हम फंक्शन में आर्गुमेंट्स को अलग-अलग तरीकों से पास कर सकते हैं। ये अलग-अलग तरीके हैं -

  • कॉल बाय वैल्यू
  • कॉल बाय रेफरेंस
  • कॉल बाय एड्रेस

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

इस खंड में, हम देखेंगे कि कॉल बाय रेफरेंस के कॉल बाय वैल्यू पर क्या फायदे हैं, और कहां उनका उपयोग करना है।

कॉल बाय वैल्यू

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

उदाहरण कोड

#include<iostream>
using namespace std;

void my_function(int x) {
    x = 50;
    cout << "Value of x from my_function: " << x << endl;
}

main() {
    int x = 10;
    my_function(x);
    cout << "Value of x from main function: " << x;
}

आउटपुट

Value of x from my_function: 50
Value of x from main function: 10

कॉल बाय रेफरेंस

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

उदाहरण कोड

#include<iostream>
using namespace std;

void my_function(int &x) {
    x = 50;
    cout << "Value of x from my_function: " << x << endl;
}

main() {
    int x = 10;
    my_function(x);
    cout << "Value of x from main function: " << x;
}

आउटपुट

Value of x from my_function: 50
Value of x from main function: 50

कॉल बाय रेफरेंस का उपयोग कहां करें?

  • कॉल बाय रेफरेंस का उपयोग मुख्य रूप से तब किया जाता है जब हम इनवोकर फंक्शन में पास किए गए आर्गुमेंट का मान बदलना चाहते हैं।

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

  1. - पायथन में पास बाय रेफरेंस बनाम वैल्यू

    पायथन भाषा में सभी पैरामीटर्स (आर्गुमेंट्स) रेफरेंस द्वारा पास किए जाते हैं। इसका मतलब है कि यदि आप किसी फ़ंक्शन के भीतर किसी पैरामीटर को क्या रेफर करता है बदलते हैं, तो परिवर्तन कॉलिंग फ़ंक्शन में भी प्रतिबिंबित होता है। उदाहरण #!/usr/bin/python # फ़ंक्शन परिभाषा यहां है def changeme(mylist):

  1. व्हाट्सएप बनाम टेलीग्राम: कौन सा बेहतर है? व्हाट्सएप बनाम टेलीग्राम: कौन सा बेहतर है?

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

  1. - Xbox One X बनाम Xbox One S: कौन सा कंसोल सर्वोत्तम मूल्य प्रदान करता है?

    8वें नवंबर को, Microsoft ने अंततः अपने लंबे समय से प्रतीक्षित और अब तक के सबसे शक्तिशाली गेम कंसोल, Xbox One X को जारी किया। इसके साथ Xbox One S की कीमत में गिरावट भी आई। हालांकि, दोनों कंसोल में एक चिकना डिज़ाइन है, 4K कंटेंट चला सकते हैं और उनके नाम समान हैं। तो, कीमतों में अंतर क्यों? दोनों में स