تحويل الأنواع (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) يمكن أن يؤدي إلى فقدان البيانات، خاصة عند التحويل من نوع بيانات أكبر إلى نوع أصغر.
التحدي
سهلاكتب برنامجاً يقوم بما يلي:
- يعلن عن متغير من نوع double باسم
temperatureويخصص له القيمة 98.6. - يستخدم تحويل النوع الصريح (explicit type casting) لتحويل
temperatureإلى عدد صحيح ويخزنه في متغير باسمwhole_part. - يطبع درجة الحرارة الأصلية والجزء الصحيح في سطرين منفصلين.
مثال على المخرجات:
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;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
2المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة3المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعة