تبدیل نوع (Casting) در C

تبدیل صریح و ضمنی انواع داده به هم در C و کاربردهای آن

تبدیل نوع چیست؟

گاهی لازم است مقدار یک نوع داده را به نوع دیگری تبدیل کنیم. به این کار Casting می‌گویند.

تبدیل ضمنی (Implicit)

کامپایلر خودش به‌طور خودکار انواع سازگار را تبدیل می‌کند:

// int به float تبدیل می‌شود به‌طور خودکار
int x = 5;
float y = x + 1.5;  // x به 5.0 تبدیل و نتیجه 6.5

تبدیل صریح (Explicit)

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

(type) value

float avg = (float) sum / count;

مثال معروف: تقسیم صحیح

int a = 7, b = 2;
float r1 = a / b;          // 3.0 — اول تقسیم صحیح انجام شد!
float r2 = (float)a / b;   // 3.5 — a اول به float تبدیل شد

این مثال نشان می‌دهد casting چقدر مهم است!

تبدیل به char

چون char عدد است، می‌توان بین char و int تبدیل کرد:

int code = 65;
char letter = (char)code;  // \x27A\x27

char c = \x27Z\x27;
int num = (int)c;          // 90

تبدیل با کاهش دقت

وقتی از نوع بزرگ‌تر به کوچکتر تبدیل می‌کنید، ممکن است داده از دست برود:

double pi = 3.14159;
int truncated = (int)pi;  // 3 — بخش اعشاری حذف شد

قواعد تبدیل خودکار

وقتی دو نوع مختلف در یک عبارت باشند، کامپایلر نوع کوچکتر را به بزرگتر تبدیل می‌کند:

char → int → long → float → double

نکات مهم

این مبحث بخشی از دوره آموزش کامل زبان C است.

ابزارهای مرتبط