ये पॉइंटर द्वारा पासिंग और रेफरेंस द्वारा पासिंग के सरल उदाहरण हैं -
पॉइंटर द्वारा पासिंग
#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
इसलिए, यदि हम किसी फंक्शन में पैरामीटर को पॉइंटर द्वारा या रेफरेंस द्वारा पास करते हैं, तो यह समान परिणाम देगा। एकमात्र अंतर यह है कि रेफरेंस किसी मौजूदा वेरिएबल को दूसरे नाम से संदर्भित करने के लिए उपयोग किए जाते हैं, जबकि पॉइंटर्स वेरिएबल के पते को संग्रहीत करने के लिए उपयोग किए जाते हैं। रेफरेंस का उपयोग करना सुरक्षित है क्योंकि यह नल नहीं हो सकता।