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";
    return 0;
}

आउटपुट

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";
    return 0;
}

आउटपुट

Before Swap
m = 7 n = 6
After Swap by pass by reference
m = 6 n = 7
  1. - C++ में अनडिफाइंड रेफरेंस / अनरिजॉल्व्ड एक्सटर्नल सिंबल एरर क्या हैं?

    जैसा कि नाम से पता चलता है, आपके द्वारा घोषित एक सिंबल को आपके द्वारा परिभाषित नहीं किया गया था। यह कई कारणों से हो सकता है। आइए उनमें से तीन को देखें – आप घोषित नाम को परिभाषित करना भूल गए। उदाहरण के लिए, आपने एक फाइल में एक फंक्शन घोषित किया और कहीं उसका उपयोग किया। लेकिन आपने उसकी परिभाषा प्रदा

  1. - C++ में कितने कीवर्ड्स हैं?

    C++ में कुल 95 रिज़र्व्ड शब्द (reserved words) हैं। C++ के रिज़र्व्ड शब्दों को सुविधाजनक रूप से कई समूहों में रखा जा सकता है। पहले समूह में, हम उन शब्दों को रखते हैं जो C प्रोग्रामिंग भाषा में भी मौजूद थे और C++ में ले लिए गए हैं। इनमें से 32 हैं। 30 और रिज़र्व्ड शब्द हैं जो C में नहीं थे, इसलिए वे

  1. - C++ की कौन सी विशेषताएं Java में नहीं हैं?

    परिचयकई विशेषताएं हैं जो C++ में देखी जा सकती हैं लेकिन Java में नहीं। उनमें से कुछ नीचे सूचीबद्ध हैं -Java में कोई अनसाइन्ड इंट विकल्प नहींJava में कोई डिस्ट्रक्टर नहीं और न ही delete क्योंकि गार्बेज कलेक्टर यह ऑपरेशन इसके लिए करता है।Java में कोई फ्रेंड क्लास या फ्रेंड फंक्शन नहीं।Java में कोई पॉइ