কম্পিউটার

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

সুতরাং, যদি আমরা একটি ফাংশনে প্যারামিটারটি পাস বাই পয়েন্টার দ্বারা পাস করি বা রেফারেন্স দ্বারা পাস করি তবে এটি একই ফলাফল দেবে। শুধুমাত্র পার্থক্য হল রেফারেন্সগুলি একটি বিদ্যমান ভেরিয়েবলকে অন্য নামে উল্লেখ করতে ব্যবহৃত হয় যেখানে পয়েন্টারগুলি ভেরিয়েবলের ঠিকানা সংরক্ষণ করতে ব্যবহৃত হয়। এটি রেফারেন্স ব্যবহার করা নিরাপদ কারণ এটি NULL হতে পারে না৷


  1. C++ এ একটি রেফারেন্স ভেরিয়েবল কি?

  2. একটি C++ ফাংশনে একটি অ্যারে পাস করা

  3. একটি পয়েন্টার ভেরিয়েবল এবং C++ এ একটি রেফারেন্স ভেরিয়েবলের মধ্যে পার্থক্য কী?

  4. পিএইচপি রেফারেন্স দ্বারা পাসিং