الوصول إلى العناصر
جزء من قسم Fundamentals في رحلة C على Coddy — الدرس 54 من 63.
تخزن المصفوفات قيمًا متعددة من نفس النوع. نستخدم موضع الفهرس للوصول إلى العناصر الفردية في المصفوفة.
في لغة C، تبدأ فهارس المصفوفة من 0. هذا يعني أن العنصر الأول موجود في الفهرس 0، والثاني في الفهرس 1، وهكذا.
أنشئ مصفوفة أعداد صحيحة تحتوي على 5 عناصر:
int numbers[5] = {10, 20, 30, 40, 50};الوصول إلى العنصر الأول (الفهرس 0):
int firstElement = numbers[0];بعد تنفيذ الكود أعلاه، يحتوي firstElement على:
10الوصول إلى العنصر الثالث (الفهرس 2):
int thirdElement = numbers[2];يؤدي هذا إلى تخزين القيمة 30 في thirdElement.
محاولة الوصول إلى عنصر خارج حدود المصفوفة (مثل numbers[5] في مثالنا) تؤدي إلى سلوك غير محدد ويمكن أن تتسبب في تعطل البرنامج.
التحدي
سهلاكتب دالة باسم getElement تقوم بما يلي:
- تأخذ مصفوفة من الأعداد الصحيحة وحجمها كمعاملات
- تأخذ معامل للفهرس (index)
- إذا كان الفهرس صالحاً (ضمن حدود المصفوفة)، تقوم بطباعة العنصر الموجود عند ذلك الفهرس
- إذا كان الفهرس غير صالح (خارج حدود المصفوفة)، تقوم بطباعة "Index out of bounds"
تذكر أن الفهرس في المصفوفات يبدأ بـ 0، لذا إذا كنت تريد العنصر السادس، يجب عليك الوصول إلى
array[5]
ورقة مرجعية
تخزن المصفوفات قيمًا متعددة من نفس النوع. تبدأ فهارس المصفوفة من 0.
إنشاء مصفوفة أعداد صحيحة:
int numbers[5] = {10, 20, 30, 40, 50};الوصول إلى العناصر باستخدام الأقواس المربعة والفهرس:
int firstElement = numbers[0]; // يحصل على 10
int thirdElement = numbers[2]; // يحصل على 30يؤدي الوصول إلى عناصر خارج حدود المصفوفة إلى سلوك غير محدد ويمكن أن يتسبب في تعطل البرنامج.
جرّب بنفسك
#include <stdio.h>
void getElement(int arr[], int size, int index) {
// اكتب كودك هنا
}
int main() {
int size, index;
// قراءة حجم المصفوفة
scanf("%d", &size);
int arr[size];
// قراءة عناصر المصفوفة
for(int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
// قراءة الفهرس للوصول إليه
scanf("%d", &index);
getElement(arr, size, index);
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
2المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة3المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعة