จากในบทความก่อนหน้านี้ นิพจน์จะเป็นชนิดข้อมูลประเภทเดียวกันทั้งหมด แต่ในความเป็นจริงแล้วนิพจน์สามารถประกอบด้วยข้อมูลชนิดที่แตกต่างกันได้ เราจะเรียกว่า mixed type expression แต่หลักการของโอเปอเรเตอร์นั้น โอเปแรนด์ที่จะนํามาดําเนินการด้วยโอเปอเรเตอร์จะต้องมีชนิดข้อมูลที่เหมือนกัน ภาษาซีจึงมีกฎที่จัดการนิพจน์เหล่านี้อยู่ 2 ประเภท คือ implicit type conversion และ explicit type conversion
implicit type conversion
implicit type conversion คือ คอมไพเลอร์จะแปลงชนิดข้อมูลให้อยู่ในรูปแบบที่เหมาะสมโดยอัตโนมัติ จะมีกฎการแปลงดังนี้ ถ้าในนิพจน์ประกอบไปด้วยข้อมูลหลายประเภท ภาษาซีจะทําการแปลงชนิดข้อมูลให้โดยอัตโนมัติ โดยชนิดข้อมูลที่มีนัยสําคัญตํ่ากว่าจะถูกแปลงไปเป็นชนิดข้อมูลที่มีนัยสําคัญสูงกว่าเสมอ ลําดับของนัยสําคัญของชนิดข้อมูล แสดงจากนัยสําคัญสูงไปนัยสําคัญตํา
- long double
- double
- float
- unsigned long int
- long int
- unsigned int
- int
- short
- char
explicit type conversion
explicit type conversion คือ ผู้เขียนโปรแกรมทําการแปลงชนิดข้อมูลหนึ่งไปเป็นอีกชนิดนึ่งด้วยตัวเอง การแปลงชนิดข้อมูลนี้เรียกอีกอย่างว่า cast ซึ่งทําได้โดยระบุชนิดข้อมูลปลายทางที่ต้องการไว้ในวงเล็บ แล้ววางไว้หน้านิพจน์ที่ต้องการแปลงชนิดข้อมูล
(ชนิดข้อมุลปลายทาง)นิพจน์ที่ต้องการแปลงชนิดข้อมูล
ตัวอย่าง
int a;
(float)a;