Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المصفوفات كمعاملات للدوال

جزء من قسم Fundamentals في رحلة C على Coddy — الدرس 58 من 63.

يمكن تمرير المصفوفات كوسيطات للدوال في لغة C. عندما يتم تمرير مصفوفة إلى دالة، فإن ما يتم تمريره فعلياً هو عنوان الذاكرة للعنصر الأول.

قم بالتصريح عن مصفوفة ودالة تأخذها كمعامل:

void displayArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

أنشئ مصفوفة واستدعِ الدالة:

int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);

عندما تمرر مصفوفة إلى دالة، فإن التغييرات التي يتم إجراؤها على المصفوفة داخل الدالة ستؤثر على المصفوفة الأصلية:

void doubleValues(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

// استدعاء الدالة
doubleValues(numbers, 5);
// الآن تحتوي numbers على: {20, 40, 60, 80, 100}
challenge icon

التحدي

سهل

قم بإنشاء دالة باسم sumArray تأخذ وسيطين:

  • مصفوفة من الأعداد الصحيحة (arr).
  • عدد صحيح (size) يمثل حجم المصفوفة.

يجب أن تقوم الدالة بحساب وإرجاع مجموع كل العناصر في المصفوفة.

بعد ذلك، في الدالة الرئيسية (main):

  1. اقرأ عدداً صحيحاً n (حجم المصفوفة).
  2. اقرأ n من الأعداد الصحيحة وقم بتخزينها في مصفوفة.
  3. استدعِ الدالة sumArray مع المصفوفة.
  4. اطبع المجموع بالتنسيق التالي: "Sum: X" (حيث X هو المجموع).

ورقة مرجعية

يتم تمرير المصفوفات إلى الدوال عن طريق المرجع (عنوان الذاكرة للعنصر الأول):

void displayArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

استدعِ الدالة باستخدام اسم المصفوفة وحجمها:

int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);

التغييرات التي يتم إجراؤها على المصفوفة داخل الدالة تؤثر على المصفوفة الأصلية:

void doubleValues(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

جرّب بنفسك

#include <stdio.h>

// اكتب دالة sumArray الخاصة بك هنا

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // استدعِ دالة sumArray واطبع النتيجة
    
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals