المصفوفات كمعاملات للدوال
جزء من قسم 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}التحدي
سهلقم بإنشاء دالة باسم sumArray تأخذ وسيطين:
- مصفوفة من الأعداد الصحيحة (arr).
- عدد صحيح (size) يمثل حجم المصفوفة.
يجب أن تقوم الدالة بحساب وإرجاع مجموع كل العناصر في المصفوفة.
بعد ذلك، في الدالة الرئيسية (main):
- اقرأ عدداً صحيحاً n (حجم المصفوفة).
- اقرأ n من الأعداد الصحيحة وقم بتخزينها في مصفوفة.
- استدعِ الدالة sumArray مع المصفوفة.
- اطبع المجموع بالتنسيق التالي: "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;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
2المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة5الإدخال والإخراج
محددات التنسيقأساسيات scanfتحدي المراجعة رقم 1التحقق من صحة الإدخالتحدي المراجعة رقم 28المصفوفات
تعريف المصفوفاتالوصول إلى العناصرتعديل العناصرالمصفوفات متعددة الأبعادتحدي المراجعة رقم 1المصفوفات كمعاملات للدوالخوارزميات المصفوفاتتحدي المراجعة رقم 23المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعة