0Pricing
C Academy · درس

التحويلات الضمنية

الترقيات التلقائية

التحويلات الضمنية درس مجاني في C Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 4 دروس في المجموع.

ما هو التحويل

عندما تجمع C بين قيم من أنواع مختلفة، فإنها تحوّل أحدها تلقائيًا إلى النوع الآخر. وهذا ما يسمى التحويل الضمني.

#include <stdio.h>
int main(void) {
    int i = 5;
    double d = i;
    printf("d = %.1f\n", d);
    return 0;
}

ترقية الأعداد الصحيحة

تُرقّى الأنواع الصحيحة الصغيرة مثل char وshort إلى int قبل إجراء العمليات الحسابية.

#include <stdio.h>
int main(void) {
    char a = 10, b = 20;
    int sum = a + b;
    printf("sum = %d\n", sum);
    return 0;
}

التحويلات الحسابية المعتادة

في التعبير المختلط، يُحوَّل المعامل الأضيق إلى النوع الأوسع لكي يتطابق المعاملان قبل إجراء العملية.

#include <stdio.h>
int main(void) {
    int i = 3;
    double d = 2.0;
    printf("%.1f\n", i + d);
    return 0;
}

من int إلى double

تُوسَّع قيمة int المسندة إلى double بأمان، مع الحفاظ على قيمتها الدقيقة.

#include <stdio.h>
int main(void) {
    int count = 7;
    double avg = count;
    printf("avg = %.1f\n", avg);
    return 0;
}

التحويل من double إلى int يقتطع الكسور

يؤدي إسناد قيمة double إلى int إلى حذف الجزء الكسري. ولا يحدث تقريب.

#include <stdio.h>
int main(void) {
    double d = 9.99;
    int n = d;
    printf("n = %d\n", n);
    return 0;
}

char وint

يحتوي char على عدد صحيح صغير، وهو رمز المحرف. ويتحول طبيعيًا إلى int.

#include <stdio.h>
int main(void) {
    char c = 'A';
    int code = c;
    printf("code = %d\n", code);
    return 0;
}

التحويلات أثناء الإسناد

يُحوَّل الطرف الأيمن إلى نوع الطرف الأيسر أثناء الإسناد.

#include <stdio.h>
int main(void) {
    double pi = 3;
    printf("pi = %.1f\n", pi);
    return 0;
}

مفاجأة القسمة المختلطة

تمثل 5 / 2 قسمة صحيحة، ونتيجتها 2. اجعل أحد المعاملين من نوع double للحصول على قسمة حقيقية.

#include <stdio.h>
int main(void) {
    printf("%.1f\n", 5 / 2.0);
    return 0;
}

التحويلات الشبيهة بالمنطقية

في الشروط، تتحول أي قيمة غير صفرية إلى true، بينما تتحول القيمة الصفرية إلى false.

#include <stdio.h>
int main(void) {
    int x = 3;
    if (x)
        printf("nonzero is true\n");
    return 0;
}

تحويل قيمة الإرجاع

تُحوَّل القيمة المُرجعة إلى نوع إرجاع الدالة. ويؤدي إرجاع double من دالة من نوع int إلى اقتطاع القيمة.

#include <stdio.h>
int half(int n) {
    return n / 2;
}
int main(void) {
    printf("%d\n", half(7));
    return 0;
}

تمرير الوسائط

تُحوَّل الوسائط إلى نوع المعامل عند وجود نموذج أولي في النطاق.

#include <stdio.h>
void show(double d) {
    printf("%.1f\n", d);
}
int main(void) {
    show(5);
    return 0;
}

اختبار سريع

اختبر مدى فهمك للتحويلات الضمنية.

مراجعة: التحويلات الضمنية

تعلمت التحويل التلقائي بين الأنواع.

  • تحوّل C المعاملات إلى نوع مشترك
  • تُرقّى الأعداد الصحيحة الصغيرة إلى int
  • يُوسَّع int إلى double بأمان
  • يُقتطع double عند تحويله إلى int
  • تسبب القسمة الصحيحة مفاجآت ما لم يكن أحد المعاملين من نوع double

الأسئلة الشائعة

هل درس «التحويلات الضمنية» مجاني؟

نعم — نص درس «التحويلات الضمنية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 4 دروس في المجموع.

ماذا ستتعلم في «التحويلات الضمنية»؟

الترقيات التلقائية تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟

لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «التحويلات الضمنية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟

نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. التحويلات الضمنية
  2. التحويلات الصريحة
  3. تحويلات الأعداد الصحيحة والعشرية
  4. مزالق التحويل
← العودة إلى C Academy