تبدیل نوع در زبان C – آموزش زبان C

c type casting 4163 تبدیل نوع در زبان C   آموزش زبان C

تبدیل نوع در زبان C

تبدیل نوع (type casting) یک راه برای تغییر نوع داده یک متغیر به نوع داده دیگر است. به عنوان نمونه، شما می توانید یک مقداری که از نوع long است را به نوع int و بلعکس تبدیل کنید. در زیر شکلی کلی تبدیل نوع در زبان برنامه نویسی C را مشاهده می کنید:

(type_name) expression

در مثال زیر نتیجه تقسیم دو متغیر که از نوع int هستند، به نوع double تبدیل می شود:

#include <stdio.h>
main() {
   int sum = 17, count = 5;
   double mean;
   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );
}

امتحان کنید

زمانی که کد بالا توسط کامپایلر زبان C و اجرا شود، نتیجه زیر را تولید خواهد کرد:

Value of mean : 3.400000

در مثال فوق عملکرد عملگر cast بیش از تبدیل نتیجه تقسیم است. این عملگر ابتدا نوع داده متغیر sum را از int به double تغییر می دهد و سپس بر روی count تقسیم می شود. تبدیل نوع می تواند به صورت ضمنی باشد که توسط کامپایلر به صورت خودکار انجام می شود یا می توان آن را به طور صریح از طریق استفاده از اپراتور منتخب مشخص کرد. این تمرین خوب برنامه نویسی در نظر گرفته شده برای استفاده از اپراتور بازیگران هر زمان که نوع تبدیل لازم است.

انواع تبدیل نوع در زبان C

تبدیل نوع داده در برنامه نویسی C می تواند به دو صورت ضمنی و صریح انجام شود.

تبدیل نوع داده به صورت ضمنی (implicit)

کامپایل به صورت خودکار عمل تبدیل نوع را انجام می دهد. برای نمونه نیازی نیست که برای قرار دادن مقدار int در long از عملگر تبدیل نوع استفاده کنیم.

تبدیل نوع داده به صورت صریع (explicitly)

به دلیل این که در تبدیل صریع ممکن است بخشی از مقداری که می خواهیم تبدیل کنیم از بین برود، کامپایلر این کار را به صورت خودکار انجام نمی دهد به همین دلیل ما باید خودمان با استفاده از عملگر cast آن را انجام دهیم. برای نمونه زمانی که می خواهید یک مقدار float را در int ذخیره کنید، بخش اعشاری float از بین می رود.

Integer Promotion

 برخی از انواع داده مانند char، short که تعداد بایت کمتری از int می گیرند، هنگامی که بر روی آن ها عملیات انجام می شود به صورت خود کار به نوع داده int و یا unsigned int تبدیل می شود. مثال زیر این موضوع را نشان می دهد:

#include <stdio.h>
main() {
   int  i = 17;
   char c = 'c'; /* ascii value is 99 */
   int sum;
   sum = i + c;
   printf("Value of sum : %d\n", sum );
}

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

Value of sum : 116

نتیجه جمع دو متغیر ۱۱۶ شده است به این دلیل که کامپایلر قبل از انجام عمل جمع متغیر c را که از نوع char می باشد را به نوع int تبدیل می کند.

تبدیلات ریاضی رایج

تبدیلات ریاضی رایج برای عملگر های محاسباتی و عمگرهای منطقی && و || انجام نمی شود. برای درک بهتر به مثال زیر توجه کنید:

#include <stdio.h>
main() {
   int  i = 17;
   char c = 'c'; /* ascii value is 99 */
   float sum;
   sum = i + c;
   printf("Value of sum : %f\n", sum );
}

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

Value of sum : 116.000000

در مثال فوق متغیر c به int تبدیل می شود، اما چون مقدار نهایی باید از نوع float باشد، تبدیلات ریاضی رایج انجام می شود و متغیرهای i و c به float تبدیل می شوند.

نوشته تبدیل نوع در زبان C – آموزش زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *