
- بواسطة x32x01 ||
سؤال Interview بسيط بس قاتل
تخيل كده ربنا كرمك واتقبلت في مقابلة شغل (Interview)، والـ Software Engineer سألك السؤال الكلاسيكي:"هو حجم الـ int كام بايت؟"
تقول بثقة: 4 bytes.يفاجئك بنظرة غريبة

فتعدل إجابتك بسرعة: لا لا... 2 bytes!
وهو يبتسم ويقولك: “تمام يا بشمهندس، هنتواصل معاك لاحقًا.”
وساعتها تقول في نفسك: “بس أنا كنت صح!”

وفعلاً… إنت كنت صح!
بس الإجابة الحقيقية هي إن حجم الـ int يعتمد على الـ Compiler، يعني مفيش رقم ثابت. ممكن يكون 2، أو 4، أو حتى أكتر، حسب النظام والمترجم اللي بتستخدمه.
طيب أعمل إيه علشان أعرف الحجم الحقيقي؟
سهلة جدًا!في لغة C عندك Operator جميلة جدًا اسمها sizeof
ودي بتخليك تعرف الحجم الفعلي لأي نوع بيانات أو متغير في النظام اللي بتشتغل عليه.
استخدام sizeof بطريقتين
الطريقة الأولى: على نوع البيانات مباشرة
يعني تسألها عن نوع معين كده: C:
sizeof(int);
sizeof(char);
sizeof(float);
الطريقة التانية: على متغير معين
يعني تكون عرّفت متغير، وعايز تعرف النظام خصصله كام byte: C:
int x;
sizeof(x);
معلومة مهمة
تقدر تحط أي عملية جوه sizeof، ومش هتتأثر القيمة الأصلية للمتغير!مثلاً:
C:
int x = 4;
sizeof(x += 3);
طب ليه مش بيظهرلي حاجة لما أجربها؟
لأن sizeof بيرجع قيمة، ومش بيطبعها.يعني لازم تخزنها في متغير أو تطبعها بنفسك.
مثلاً:
C:
int x;
int Bytes;
Bytes = sizeof(x);
printf("Number of Bytes = %d", Bytes);
C:
int x;
printf("Number of Bytes = %d", sizeof(x));
الخلاصة
- متقولش إن الـ int دايمًا 2 أو 4 bytes.
- استخدم sizeof علشان تعرف الحجم الحقيقي على جهازك.
- خليك جاهز لأي سؤال "سهل ممتنع" في الـ Interview.
- وافتكر دايمًا: المبرمج الشاطر مش اللي يحفظ، لكن اللي يفهم ويجرب
التعديل الأخير: