اذهب إلى المحتوى
  • 0

طرق الفهرسة (indexing) في لغة البرمجة C

May Out

السؤال

Recommended Posts

  • 0

في لغة البرمجة C، يمكن الوصول إلى عناصر في مصفوفة باستخدام مفهوم الفهرسة (indexing)، حيث يمكنك تحديد عنصر معين داخل المصفوفة باستخدام رقم محدد.

هناك طريقتين رئيسيتين للفهرسة في C :

  • الفهرسة المباشرة:

تتم هذه الفهرسة عن طريق تحديد عنصر معين باستخدام فهرس محدد.

فمثلاً، إذا كان لدينا مصفوفة بعناصر من النوع int، يمكن الوصول إلى العنصر الثالث في المصفوفة عن طريق كتابة: myArray[2]، حيث يكون الرقم 2 هو الفهرس المحدد للعنصر الثالث.

  • الفهرسة بواسطة مؤشر:

تتم هذه الفهرسة باستخدام مؤشر يشير إلى موقع العنصر المراد الوصول إليه. ويمكن تعريف مؤشر على المصفوفة باستخدام علامة الـ " * "، ويمكن الوصول إلى العنصر عن طريق استخدام علامة الـ " * " مرة أخرى.

مثال: إذا كان لدينا مصفوفة من الأعداد الصحيحة، يمكن تعريف مؤشر عليها عن طريق كتابة: int *myPtr = myArray; ثم الوصول إلى العنصر الثالث عن طريق كتابة *(myPtr + 2).

ويجب ملاحظة أن استخدام الفهرسة المباشرة هي الطريقة الأسهل والأكثر شيوعاً في C.

مثال على طريقة الفهرسة في لغة البرمجة C :

#include <stdio.h>

int main() {
   int arr[5] = {10, 20, 30, 40, 50};
   int i;
   for(i = 0; i < 5; i++) {
      printf("Value of arr[%d] is %d\n", i, arr[i] );
   }
   return 0;
}

في المثال السابق، تم إنشاء مصفوفة بخمسة عناصر ثم تهيئة كل عنصر بقيمة معينة. و استخدام حلقة for للتحقق من قيم كل عنصر في المصفوفة باستخدام الفهرسة. يتم ذلك عن طريق استخدام متغير العداد i كفهرس للوصول إلى قيم المصفوفة.

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

بالإضافة للطرق السابقة فيوجد أيضاً طريقة أخرى وهي 

فهرسة العناوين: يمكن استخدام عناوين العناصر في المصفوفة للوصول إلى البيانات. يمكن الحصول على عنوان العنصر باستخدام عامل &.

مثال على ذلك 

int arr[5] = {1, 2, 3, 4, 5};
int *address = &arr[2]; // يحصل على عنوان العنصر الثالث في المصفوفة
int value = *address; // يحصل على العنصر الثالث باستخدام عنوانه

مثال على الفهرسة المباشرة

int arr[5] = {1, 2, 3, 4, 5};
int value = arr[2]; // يحصل على العنصر الثالث في المصفوفة (يبدأ الفهرس من 0)

مثال على الفهرسة بواسطة مؤشر

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // المؤشر يشير إلى العنصر الأول في المصفوفة
int value = *(ptr + 2); // يحصل على العنصر الثالث في المصفوفة باستخدام المؤشر

int value = ptr[2]; // يحصل على العنصر الثالث في المصفوفة باستخدام المؤشر

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...