C++-এ পুরো অ্যারে ফাংশনে আর্গুমেন্ট হিসেবে পাস করা যায় না। তবে অ্যারের নাম (যা প্রথম উপাদানের ঠিকানা) দিয়ে পয়েন্টার পাস করা যায়। ফাংশন প্যারামিটার তিনভাবে ঘোষণা করা যায় — সবই একই রেজাল্ট দেয় কারণ কম্পাইলারকে বোঝায় যে একটি ইন্টিজার পয়েন্টার আসবে।
তিনটি পদ্ধতি:
পদ্ধতি ১: পয়েন্টার হিসেবে
void myFunction(int *param) { ... }
পদ্ধতি ২: সাইজড অ্যারে হিসেবে
void myFunction(int param[10]) { ... }
পদ্ধতি ৩: আনসাইজড অ্যারে হিসেবে
void myFunction(int param[]) { ... }
সব কেসে কম্পাইলার এটিকে int* param হিসেবে ট্রিট করে।
ব্যবহারিক উদাহরণ: অ্যারের গড় বের করা
#include <iostream>
using namespace std;
// ফাংশন ডিক্লেয়ারেশন
double getAverage(int arr[], int size);
int main() {
// ৫ উপাদানpeł অ্যারে
int balance[5] = {1000, 2, 3, 17, 50};
double avg;
// অ্যারের পয়েন্টার পাস করা
avg = getAverage(balance, 5);
cout << "Average value is: " << avg << endl;
return 0;
}
// ফাংশন ডেফিনিশন
double getAverage(int arr[], int size) {
int i, sum = 0;
double avg;
for (i = 0; i < size; ++i)
sum += arr[i];
avg = double(sum) / size;
return avg;
}
আউটপুট
Average value is: 214.4
গুরুত্বপূর্ণ নোট: ফাংশনের মধ্যে অ্যারের আকার জানার উপায় নেই (পয়েন্টার ডিকে)। তাই আকার আলাদা প্যারামিটার হিসেবে পাস করতে হয়। C++ বাউন্ড চেকিং করে না, তাই প্রোগ্রামারের দায়িত্ব সঠিক আকার পাস করা। আধুনিক C++-এ std::array, std::vector বা std::span (C++20) ব্যবহার করা উচিত।