المصفوفات والدوال
جزء من قسم الأساسيات في رحلة C++ على Coddy. الدرس 62 من 74.
لا يمكن تمرير المصفوفات إلى الدوال مباشرةً بوصفها مصفوفات كاملة. عندما تحاول تمرير مصفوفة إلى دالة، فإنها «تتحول» إلى مؤشر يشير إلى عنصرها الأول.
على سبيل المثال:
int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
int size = std::size(arr);
}لا يتم تجميع std::size(arr) هنا، لأن arr هو في الواقع مؤشّر وليس مصفوفة، والمؤشّر لا يخزّن حجم المصفوفة. ستتعلّم المؤشّرات في الدورة التالية.
لهذا السبب، عند تمرير المصفوفات إلى الدوال، نحتاج عادةً إلى تمرير الحجم كمعامل منفصل:
void processArray(int arr[], int size) {
// الآن يمكننا التعامل مع المصفوفة بأمان باستخدام المعامل size
}إليك كيفية استدعاء الدالة:
int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);كما أنه لا يمكن إرجاع مصفوفة في دالة:
int[] processArray(int arr[]) {
return arr;
}هذا غير مسموح. بدلًا من ذلك، ينبغي أن تستخدم الصياغة *:
int* processArray(int arr[]) {
return arr;
}
int* newArr = processArray(arr);تشير صياغة النجمة (*) إلى المؤشرات التي ستُناقَش في الدورة القادمة.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوصتدرّب بنفسك: مترجم C++ عبر الإنترنت