وش معنى
a[4096]
في لغة السي
وايضا ليش نحط
srand(11711)
لاني شفتها في برنامج وما فهمت وش قصدهم فيها
ابي افهم لماذا نضعها وما معناها ؟
a[4096]
srand(11711)
وش معنى
a[4096]
في لغة السي
وايضا ليش نحط
srand(11711)
لاني شفتها في برنامج وما فهمت وش قصدهم فيها
ابي افهم لماذا نضعها وما معناها ؟
srand(11711)
تم تعديل هذه المشاركة بواسطة مبرمجة ++C في 1 ديسمبر 2007 في 19:19
السلام عليكم ,,
أرجو أن يتم وضع الكود كاملاُ حتى نعرف وظيفته و بالتالي يسهل تفسير الأمور ,,
على كل حال سأقوم بتفسير ما وضعته بشكل عام ,,
بالنسبة لـ :
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
هذا الموضوع مغلق.