الدرس 8: تحويل الأنواع و casting
في لغة C لكل قيمة نوع، والنوع يحدد كيف تتصرف العمليات. عندما يكون طرفا القسمة من نوع int، تكون النتيجة قسمة صحيحة: 5 / 2 هي 2، وليست 2.5! عندما تخلط int مع double، يُرقّى الـ int تلقائيًا إلى double (تحويل ضمني)، لكن عندما يكون الطرفان صحيحين — علينا التدخل بـ cast صريح: (double)a / b. سنكتشف أيضًا
القسمة الصحيحة تشبه تقسيم 5 قطع بسكويت بين طفلين دون كسر أي قطعة: كل واحد يحصل على 2، والقطعة المتبقية تختفي ببساطة. أما الـ cast فهو مثل إحضار سكين — فجأة تصبح الأنصاف ممكنة أيضًا.
- القسمة الصحيحة
- int مقسومًا على int يُسقط الباقي: 5 / 2 هي 2، و 7 / 4 هي 1.
- التحويل الضمني (الترقية)
- عندما يختلط int و double في تعبير، يُرقّى الـ int تلقائيًا إلى double.
- cast صريح
- (double)a — يحوّل قيمة a إلى double لأجل التعبير، دون تغيير a نفسه.
- char كعدد
- char يخزّن رمزًا عدديًا: 'A' هي 65، لذا 'A' + 1 هي 66 — الحرف B.
- %c مقابل %d
- القيمة نفسها، عرضان مختلفان: %c يطبع محرفًا، و %d يطبع رمزه العددي.