Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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 # Function definition is here def changeme( mylist ): "This changes a pa

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

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

  1. Xbox One X बनाम Xbox One S:कौन सा बेहतर है?

    8वें को नवंबर में, माइक्रोसॉफ्ट ने आखिरकार अपना लंबे समय से प्रतीक्षित और अब तक का सबसे शक्तिशाली गेम कंसोल, एक्सबॉक्स वन एक्स जारी किया। यह Xbox One S के लिए कीमतों में गिरावट के साथ भी था। हालाँकि, दोनों कंसोल में एक चिकना डिज़ाइन है, 4k सामग्री चला सकते हैं और समान नाम हैं। तो, कीमतों में अंतर क्