ปลดเปลื้อง 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
ต้องทราบที่นี่เป็นผู้ดำเนินการโยนจะเหนือกว่าฝ่ายดังนั้นมูลค่าของทุนที่เป็นครั้งแรกที่แปลงเป็นคู่แล้วแบ่งนับได้รับค่าจากประเภทคู่
แปลงชนิดสามารถเป็นนัยดำเนินการโดยอัตโนมัติโดยคอมไพเลอร์ก็สามารถที่ชัดเจนที่ระบุโดยใช้ผู้ประกอบการหล่อในการเขียนโปรแกรมที่มีความจำเป็นต้องใช้เวลาดำเนินการแปลงชนิดหล่อเป็นหลักปฏิบัติที่ดีในการเขียนโปรแกรม
โปรโมชั่นหนึ่ง
หมายถึงโปรโมชั่นหนึ่งมีค่าน้อยกว่าหรือไม่ได้ลงนาม intชนิดจำนวนเต็มintจะถูกแปลงเป็นintหรือกระบวนการint ไม่ได้ลงนามพิจารณาตัวอย่างต่อไปเพิ่มตัวละครในเป็น int:
#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 เพราะคอมไพเลอร์ที่ได้รับการโปรโมชั่นหนึ่งเมื่อดำเนินการดำเนินการนอกจากนี้ที่เกิดขึ้นจริงที่ 'C' ค่าแปลงเป็นค่า ASCII ที่สอดคล้องกัน
การแปลงทางคณิตศาสตร์ตามปกติ
แปลงเลขคณิตปกติถูกโยนไปโดยปริยายค่าของชนิดเดียวกันคอมไพเลอร์แรกที่ดำเนินการยกจำนวนเต็มถ้าตัวถูกดำเนินการที่แตกต่างกันที่พวกเขาจะถูกแปลงเป็นลำดับต่อไปนี้ปรากฏประเภทระดับสูงสุด:
การแปลงทางคณิตศาสตร์ตามปกติไม่สามารถใช้กับผู้ประกอบการที่ได้รับมอบหมาย, ดำเนินการทางตรรกะและ && || ลองดูที่ตัวอย่างต่อไปนี้เพื่อให้เข้าใจแนวคิดนี้:
#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
นี่, C จะถูกแปลงแรกเป็นจำนวนเต็ม แต่เนื่องจากค่าสุดท้ายเป็นชนิดที่สองเพื่อการแปลงทางคณิตศาสตร์ตามปกติจะใช้คอมไพเลอร์จะฉันและ C จะถูกแปลงเป็นลอยและทำให้พวกเขาร่วมกันเพื่อให้ได้รับจำนวนจุดลอยตัว .