
Việc quy đổi một loại tài liệu (data type) này trở thành một loại tài liệu không giống được gọi là nghiền loại (type casting) hoặc quy đổi loại (type-conversion). Ví dụ nhập thiết kế C, nếu như mình thích tàng trữ một độ quý hiếm loại ‘long’ nhập một số trong những vẹn toàn (integer) đơn giản và giản dị thì chúng ta cũng có thể nghiền loại ‘long’ trở thành ‘int’.
Bạn đang xem: typecast là gì
Bạn hoàn toàn có thể quy đổi những độ quý hiếm kể từ loại này thanh lịch loại không giống một cơ hội tường minh bằng phương pháp dùng toán tử nghiền loại (cast operator) như sau:
(type_name) expression
Hãy kiểm tra ví dụ tiếp sau đây, nhập bại toán tử nghiền loại khiến cho luật lệ phân chia một đổi mới số vẹn toàn cho 1 đổi mới số vẹn toàn không giống được triển khai như 1 luật lệ toán vệt chấm động (floating-point operation).
main() { int sum = 17, count = 5; double mean; mean = (double) sum / count; printf("Value of mean : %f\n", mean ); }
Khi đoạn code bên trên được biên dịch và thực thi đua, nó sẽ bị cho tới thành quả như sau.
Value of mean : 3.400000
Ở trên đây cần thiết chú ý rằng toán tử nghiền loại được ưu tiên rộng lớn luật lệ phân chia, vậy nên độ quý hiếm của tổng sum trước tiên được quy đổi trở thành loại double và tiếp sau đó nó vừa được phân chia cho tới số điểm count đưa đến độ quý hiếm double.
Các quy đổi loại hoàn toàn có thể được trình biên dịch hiểu ngầm, triển khai tự động hóa hoặc hoàn toàn có thể được thể hiện nay công khai minh bạch trải qua việc dùng toán tử nghiền loại (cast operator). Người tao coi một thói quen thuộc thiết kế đảm bảo chất lượng là dùng toán tử nghiền loại (tường minh) ngẫu nhiên khi này gặp gỡ quy đổi loại.
Thăng Cấp Số Nguyên (Integer Promotion)
Thăng cung cấp số vẹn toàn (integer promotion) là quy trình tuy nhiên những độ quý hiếm của loại số vẹn toàn “nhỏ hơn” int hoặc unsigned int được quy đổi trở thành int hoặc unsigned int. Hãy kiểm tra một ví dụ về luật lệ và một ký tự động (character) với một số trong những vẹn toàn (integer).
#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 ); }
Khi đoạn code bên trên được biên dịch và thực thi đua, nó sẽ bị cho tới thành quả như sau.
Xem thêm: những câu nói hay về tình yêu tiếng anh
Value of sum : 116
Ở trên đây, độ quý hiếm của sum là 116 vì như thế trình biên dịch vẫn triển khai việc thăng cung cấp số vẹn toàn và quy đổi độ quý hiếm của ‘c’ trở thành ASCII trước lúc triển khai thao tác nằm trong thực sự.
Chuyển Đổi Số Học Thông Thường
Các quy đổi số học tập thường thì (usual arithmetic conversions) được triển khai ngầm toan nhằm nghiền những độ quý hiếm của bọn chúng trở thành một loại cộng đồng. Trình biên dịch trước tiên triển khai việc thăng cung cấp số nguyên; nếu như những toán tử (operand) vẫn đang còn loại không giống nhau, thì bọn chúng được quy đổi trở thành loại tối đa nhập sơ đồ vật phân cung cấp sau:

Các quy đổi số học tập thường thì ko được triển khai cho những toán tử gán (assignment operator), cũng ko nên cho những toán tử logic && và ||. Chúng tao hãy coi ví dụ sau nhằm hiểu định nghĩa này.
#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 ); }
Sau Lúc biên dịch, đoạn code bên trên Lúc thực thi đua tiếp tục cho tới thành quả sau:
Value of sum : 116.000000
Ở trên đây, hoàn toàn có thể hiểu đơn giản và giản dị rằng đổi mới c trước tiên được quy đổi trở thành ineger, tuy nhiên vì như thế độ quý hiếm sau cuối là float. sát dụng quy đổi số học tập thường thì và trình biên dịch quy đổi đổi mới i và c trở thành ‘float’ và nằm trong lại muốn tạo đi ra thành quả ‘float’.
Xem tăng Usual Arithmetic Conversions kể từ Microsoft.
(Tiếp theo)
Xem thêm: chuyên đề lý 10 kết nối tri thức
Bình luận