নিচে পাস-বাই-পয়েন্টার এবং পাস-বাই-রেফারেন্সের সহজ উদাহরণ দেওয়া হলো:
পাস-বাই-পয়েন্টার
#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
উভয় পদ্ধতিতে ফলাফল একই। পার্থক্য হলো: রেফারেন্স ভেরিয়েবলের অন্য নাম, পয়েন্টার ঠিকানা ধারণ করে। রেফারেন্স নাল হতে না পারা কারণে এটি নিরাপদ।