Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
C
24
cộng một số nguyên với một số thực rõ ràng là khác kiểu nhưng bạn vẫn có thể thực hiện
được. Thực ra thì trước khi thực hiện toán tử cộng đó chương trình dịch đã thực hiện thao
tác chuyển đổi kiểu của số nguyên thành số thực chúng ta gọi là phép chuyển kiểu (ép
kiểu). Trong một số tình huống việc chuyển kiểu trong C có thể được chương trình dịch
thực hiện tự động (gọi là ép kiểu tự động) hoặc được ép kiểu kiểu tường minh (người lập
trình viết câu lệnh - toán tử chuyển kiểu).
Nói
chung
sự chuyển kiểu tự động xảy ra trong bốn trường hợp sau:
− Các toán hạng trong một biểu thức khác kiểu.
− Gán một biểu thức vào một biến khác kiểu.
− Truyền tham số thực sự khác kiểu với tham số hình thức.
− Giá trị trả về của hàm sau câu lệnh return khác với kiểu hàm được khai báo.
Trong
trường hợp thứ nhất quy tắc chuyển kiểu từ thấp lên cao được áp dụng, tức là
toán hạng có kiểu thấp hơn sẽ được tự động chuyển thành kiểu của toán hạng cao hơn
theo trật tự:
char
⇒ int ⇒ long ⇒ float ⇒ double
Trong ba trường hợp cuối kiểu của giá trị vế phải được chuyển theo kiểu của biến bên
trái, kiểu các tham số thực sự được chuyển theo kiểu của tham số hình thức, kiểu giá trị
trả về (sau return) phải chuyển thành kiểu của hàm.
Lưu ý là chỉ chuyển kiểu giá trị tức thời của toán hạng rồi thực hiện phép toán chứ
kiểu của bản thân toán hạng thì không thay đổi.
Trong
một số yêu cầu chúng ta cần sự chuyển kiểu rõ ràng (ép kiểu tường minh) chứ
không sử dụng quy tắc chuyển kiểu ngầm định, trong trường hợp này bạn có thể sử dụng
toán tử chuyển kiểu theo cú pháp sau:
Chia sẻ với bạn bè của bạn: