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

सी ++ में संदर्भ द्वारा पॉइंटर बनाम पासिंग द्वारा गुजरना

ये पॉइंटर द्वारा पासिंग और रेफरेंस से गुजरने के सरल उदाहरण हैं -

सूचक से गुजरना

#include <iostream>
using namespace std;
void swap(int* a, int* b) {
   int c = *a;
   *a= *b;
   *b = c;
}
int main() {
   int m = 7, n = 6;
   cout << "Before Swap\n";
   cout << "m = " << m << " n = " << n << "\n";
   swap(&m, &n);
   cout << "After Swap by pass by pointer\n";
   cout << "m = " << m << " n = " << n << "\n";
}

आउटपुट

Before Swap
m = 7 n = 6
After Swap by pass by pointer
m = 6 n = 7

संदर्भ से गुजरना

#include <iostream>
using namespace std;
void swap(int& a, int& b) {
   int c = a;
   a= b;
   b = c;
}
int main() {
   int m =7, n = 6;
   cout << "Before Swap\n";
   cout << "m = " << m << " n = " << n << "\n";
   swap(m, n);
   cout << "After Swap by pass by reference\n";
   cout << "m = " << m << " n = " << n << "\n";
}

आउटपुट

Before Swap
m = 7 n = 6
After Swap by pass by reference
m = 6 n = 7

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


  1. एक सी ++ फ़ंक्शन में एक सरणी पास करना

    C++ फ़ंक्शन के तर्क के रूप में संपूर्ण सरणी को पारित करने की अनुमति नहीं देता है। हालांकि, आप किसी इंडेक्स के बिना ऐरे का नाम निर्दिष्ट करके किसी ऐरे को पॉइंटर पास कर सकते हैं। यदि आप किसी फ़ंक्शन में एक एकल-आयाम सरणी को तर्क के रूप में पास करना चाहते हैं, तो आपको निम्नलिखित तीन तरीकों में से एक मे

  1. C++ में पॉइंटर वेरिएबल और रेफरेंस वेरिएबल में क्या अंतर हैं?

    संदर्भ जब एक चर को संदर्भ के रूप में घोषित किया जाता है, तो यह मौजूदा चर के लिए एक वैकल्पिक नाम बन जाता है। वाक्यविन्यास Type &newname = existing name; आरंभीकरण Type &pointer; pointer = variable name; पॉइंटर्स पॉइंटर्स का इस्तेमाल वैरिएबल के एड्रेस को स्टोर करने के लिए किया जाता है। सिंटै

  1. संदर्भ द्वारा PHP पासिंग

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