Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تحويل الأنواع (Type Casting) - الجزء 2

جزء من قسم Fundamentals في رحلة C على Coddy — الدرس 14 من 63.

في الجزء الأول، تناولنا تحويل النوع الضمني (implicit type casting). الآن، دعونا نستكشف تحويل النوع الصريح (explicit type casting) في لغة C.

تحويل النوع الصريح (التحويل اليدوي) هو عندما تقوم بتحويل نوع بيانات إلى آخر بشكل قسري باستخدام عامل التحويل (cast operator).

صيغة التحويل الصريح (explicit casting) هي:

(target_type) expression

لنقم بتحويل عدد عشري (float) إلى عدد صحيح (integer):

float price = 45.95;
int rounded_price = (int) price;

بعد تنفيذ الكود أعلاه، سيكون rounded_price:

45

لاحظ أن الجزء العشري يتم بتره (لا يتم تقريبه).

يمكننا أيضاً تحويل الأحرف إلى أعداد صحيحة للحصول على قيم ASCII الخاصة بها:

char letter = 'A';
int ascii_value = (int) letter;

بعد تنفيذ الكود أعلاه، ستكون ascii_value هي:

65

تذكر أن تحويل أنواع البيانات (type casting) يمكن أن يؤدي إلى فقدان البيانات، خاصة عند التحويل من نوع بيانات أكبر إلى نوع أصغر.

challenge icon

التحدي

سهل

اكتب برنامجاً يقوم بما يلي:

  1. يعلن عن متغير من نوع double باسم temperature ويخصص له القيمة 98.6.
  2. يستخدم تحويل النوع الصريح (explicit type casting) لتحويل temperature إلى عدد صحيح ويخزنه في متغير باسم whole_part.
  3. يطبع درجة الحرارة الأصلية والجزء الصحيح في سطرين منفصلين.

مثال على المخرجات:

Original temperature: 98.6
Whole part: 98

ورقة مرجعية

يسمح لك تحويل النوع الصريح (Explicit type casting) في لغة C بتحويل نوع بيانات يدوياً إلى نوع آخر باستخدام عامل التحويل (cast operator).

الصيغة:

(target_type) expression

تحويل float إلى integer (يؤدي إلى حذف الجزء العشري):

float price = 45.95;
int rounded_price = (int) price;  // النتيجة: 45

تحويل character إلى integer (للحصول على قيمة ASCII):

char letter = 'A';
int ascii_value = (int) letter;  // النتيجة: 65

ملاحظة: يمكن أن يؤدي تحويل النوع إلى فقدان البيانات عند التحويل من أنواع بيانات أكبر إلى أنواع أصغر.

جرّب بنفسك

#include <stdio.h>

int main() {
    // اكتب كودك هنا
    
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals