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

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

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

  1. - C++ फ़ंक्शन में ऐरे पास करना

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

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

    रेफरेंस (References) जब किसी वेरिएबल को रेफरेंस के रूप में घोषित किया जाता है, तो यह मौजूदा वेरिएबल के लिए एक वैकल्पिक नाम बन जाता है। सिंटैक्स Type &newname = existing name; इनिशियलाइज़ेशन Type &pointer; pointer = variable name; पॉइंटर्स (Pointers) पॉइंटर्स का उपयोग वेरिएबल के एड्रेस को स्ट

  1. - PHP पासिंग बाय रेफरेंस (Passing by Reference) - फ़ंक्शन आर्गुमेंट्स, सरणी, ऑब्जेक्ट

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