C++ Pass Array to a Function

🔹 تعریف

  • آرایه‌ها را می‌توان به تابع به صورت پارامتر ارسال کرد تا روی آنها پردازش انجام شود.

  • آرایه‌ها به صورت پیش‌فرض با ارجاع (Reference) عمل می‌کنند، یعنی تغییرات داخل تابع روی آرایه اصلی اعمال می‌شود.

🔹 ساختار

void functionName(type arrayName[], int size) { // پردازش آرایه }

یا

void functionName(type *arrayName, int size) { ... }

توجه: همیشه اندازه آرایه به تابع داده می‌شود، چون تابع نمی‌تواند سایز آرایه را تشخیص دهد.

1️⃣ مثال ساده: چاپ آرایه

#include <iostream> using namespace std; void printArray(int arr[], int size) { for(int i = 0; i < size; i++) { cout << arr[i] << " "; } cout << endl; } int main() { int numbers[] = {1, 2, 3, 4, 5}; int size = sizeof(numbers) / sizeof(numbers[0]); printArray(numbers, size); }

🔹 خروجی: 1 2 3 4 5

2️⃣ مثال: تغییر عناصر آرایه

#include <iostream> using namespace std; void multiplyByTwo(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] *= 2; // تغییر آرایه اصلی } } int main() { int numbers[] = {1, 2, 3, 4, 5}; int size = sizeof(numbers) / sizeof(numbers[0]); multiplyByTwo(numbers, size); for(int i = 0; i < size; i++) { cout << numbers[i] << " "; } }

🔹 خروجی: 2 4 6 8 10

3️⃣ نکات مهم

  1. آرایه‌ها به صورت پیش‌فرض به تابع ارجاع داده می‌شوند.

  2. همیشه باید اندازه آرایه را به تابع بدهیم.

  3. می‌توان از Pointer به جای نام آرایه استفاده کرد، چون همان رفتار را دارد.

  4. برای آرایه‌های بزرگ، Pass By Reference از نظر کارایی بهتر از Pass By Value است.