الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن الاندكس Index

مغلق
بدأه مبرمجة ++C في 1 ديسمبر 2007 · 1 رد · 778 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

وش معنى

a[4096]

في لغة السي

وايضا ليش نحط

srand(11711)

لاني شفتها في برنامج وما فهمت وش قصدهم فيها

ابي افهم لماذا نضعها وما معناها ؟


a[4096]
 srand(11711)

تم تعديل هذه المشاركة بواسطة مبرمجة ++C في 1 ديسمبر 2007 في 19:19

#2

السلام عليكم ,,

أرجو أن يتم وضع الكود كاملاُ حتى نعرف وظيفته و بالتالي يسهل تفسير الأمور ,,

على كل حال سأقوم بتفسير ما وضعته بشكل عام ,,

بالنسبة لـ :

a[4096]

فهذا يسمى بالـ indexing للمصفوفة ,,

ما معنى هذا الكلام ؟,,

المصفوفة عبارة عن مجموعة من العناصر المتجاورة في الذاكرة,, أي أن كل عنصر يتبعه الآخر في الذاكرة ,,

و لكن المشكلة ماذا لو كانت المصفوفة مكونة من 1000 عنصر على سبيل المثال ,,

هل سأحتاج إلى 1000 متغير ؟ الإجابة الذي سيقولها لك أي مبرمج حتى لو كان من هاوياُ ..

سنقوم باستعمال,, مكان كعلامة و من ذلك المكان يمكننا الوصول إلى ما نريد,,

طبعاُ اسم المصفوفة سيكون العلامة المتفق عليها,, و لتكن في الذاكرة على العنوان

Array Address in Memory = 200
&Array = 0xC8 // in HEX

بما أننا نعرف أن عدد العناصر يساوي 1000 و كل عنصر عبارة عن char = one Byte فبالتلي سنعرف أن لدينا مساحة في الذاكرة قدرها 1000 byte و تمتد من 200العنوان إلى العنوان 1199,

و لكن كيف يمكن الوصول إلى المساحة على العنوان 250 على سبيل المثال ,,

يمكننا استخدام قوسين و بينهما عدد للوصول إلى العنصر المطلوب كما هو المثال الذي وضعته ,,

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

a[0]

و هكذا ,,

------------

هناك طرق كثيرة للوصول إلى العناصر و منها أيضاُ - لا عليك بالكود التالي ,, فهو لايستخدم كثيراُ و لكن من باب المعرفة ,,

(&a + 5) = 255;
// &a = The Address of the Array.
// 5 = offset to the wanted element.

في المثال السابق سنقوم باسناد 255 للعنصر السادس في المصفوفة ,,

========================================================

بالنسبة للدالة srand فهي تستخدم مع الدالة rand للحصول على قيم عشوائية ,,

و لكن الدالة rand تتطلب أولاُ زرع قيمة - تسمى القيمة البذرة seed - للبدء في انتاج الأعداد العشوائية ..

تحياتي ,,

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 2 ديسمبر 2007 في 01:05

هذا الموضوع مغلق.

مواضيع مشابهة