يعني إيه sizeof في C؟ شرح عملي بسيط وجميل

x32x01
  • بواسطة 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);
ودي بترجعلك الحجم بالـ bytes.



الطريقة التانية: على متغير معين​

يعني تكون عرّفت متغير، وعايز تعرف النظام خصصله كام byte:
C:
int x;
sizeof(x);



معلومة مهمة 💡

تقدر تحط أي عملية جوه sizeof، ومش هتتأثر القيمة الأصلية للمتغير!
مثلاً:
C:
int x = 4;
sizeof(x += 3);
هنا قيمة x هتفضل 4 ومش هتتغير، لأن sizeof مش بينفذ العملية فعليًا، هو بس بيحسب الحجم.



طب ليه مش بيظهرلي حاجة لما أجربها؟ 🤔

لأن 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.
  • وافتكر دايمًا: المبرمج الشاطر مش اللي يحفظ، لكن اللي يفهم ويجرب 💪
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
173
x32x01
x32x01
x32x01
الردود
0
المشاهدات
556
x32x01
x32x01
x32x01
الردود
0
المشاهدات
617
x32x01
x32x01
x32x01
  • x32x01
الردود
0
المشاهدات
426
x32x01
x32x01
x32x01
  • x32x01
الردود
0
المشاهدات
365
x32x01
x32x01
x32x01
الردود
0
المشاهدات
426
x32x01
x32x01
x32x01
الردود
0
المشاهدات
593
x32x01
x32x01
x32x01
الردود
0
المشاهدات
448
x32x01
x32x01
x32x01
الردود
0
المشاهدات
430
x32x01
x32x01
x32x01
الردود
1
المشاهدات
486
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
1,831
المشاركات
2,028
أعضاء أكتب كود
463
أخر عضو
adil
عودة
أعلى