Latest web development tutorials

يلقي C

يلقي يتم تحويل متغير من نوع واحد إلى نوع بيانات آخر. على سبيل المثال، إذا كنت ترغب في تخزين قيمة من نوع طويل إلى عدد صحيح بسيطة، تحتاج إلى كتابة يلقي طويلة إلى نوع int. يمكنك استخداممشغل المدلى بها لوضع صراحة القيم من نوع واحد إلى نوع آخر، على النحو التالي:

(type_name) expression

النظر في الأمثلة التالية، واستخدام عامل تحويل إلزاميا إلى متغير عدد صحيح متغير عدد صحيح آخر، والحصول على تعويم:

#include <stdio.h>

main()
{
   int sum = 17, count = 5;
   double mean;

   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );

}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

Value of mean : 3.400000

لنلاحظ هنا هو عامل يلقي الأسبقية الانقسام، وبالتالي فإن قيمةالمبلغ يتم تحويل أولا إلى ضعف،ثم تقسم الاعتماد، والحصول على قيمة من نوع ضعف.

يمكن نوع التحويلات يكون ضمنيا، يقوم تلقائيا من قبل المترجم، يمكن أن يكون صريحا، المحدد باستخداممشغل المدلى بها.في البرمجة، وهناك حاجة لقضاء وقت مشغل نوع التحويل المدلى بها، هو ممارسة البرمجة الجيدة.

تعزيز يتجزأ

يشير إلى تعزيز يتجزأ أقل منكثافة العمليات أو تحويلها غير موقعةنوع عدد صحيحكثافة العملياتلكثافة العمليات أو عمليةكثافة العمليات غير موقعة.النظر في المثال التالي، إضافة حرف في الباحث:

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   int sum;

   sum = i + c;
   printf("Value of sum : %d\n", sum );

}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

Value of sum : 116

هنا، مجموع قيمة 116، لأن المترجم كان تعزيز يتجزأ عند تنفيذ العملية بالإضافة الفعلية، حولت "ج" القيمة إلى القيمة أسكي المقابلة.

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

ويلقيالتحويلات الحسابية المعتادة ضمنا إلى القيمة من نفس النوع.المترجم أولا ينفذصحيحا رفع، إذا كانت المعاملات من أنواع مختلفة، ويتم تحويل إلى التسلسل الهرمي التالي يظهر أعلى مستوى النوع:

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

لا تنطبق التحويلات الحسابية المعتادة على عامل التعيين، العوامل المنطقية && و ||. دعونا ننظر في الأمثلة التالية لفهم هذا المفهوم:

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   float sum;

   sum = i + c;
   printf("Value of sum : %f\n", sum );

}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

Value of sum : 116.000000

هنا، يتم تحويل ج أولا إلى عدد صحيح، ولكن نظرا لقيمة مشاركة ونوع مزدوج، بحيث يتم تطبيق التحويلات الحسابية المعتادة، سوف يتم تحويل مترجم i و ج لتعويم، ووضعها معا للحصول على رقم الفاصلة العائمة .