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