Which implicit type casting is used in the following codes in C programming?
4 phương ánCó giải thích
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "int i = (double)123.5;". Hằng 123.5 vốn đã mang kiểu double nên phép ép kiểu viết ra ở đây không làm gì cả; việc thật sự xảy ra là phép chuyển ngầm khi gán một giá trị double cho biến int, và chính phép chuyển ngầm đó cắt phần thập phân để i nhận 123. Đó là mẫu chuyển kiểu ngầm thu hẹp kinh điển mà câu hỏi nhắm tới. Lựa chọn "double t = double(2);" không phải cú pháp của C, cách gọi kiểu như hàm chỉ có trong C++. Lựa chọn "double t = (double) 2;" đã nói rõ ý định bằng phép ép kiểu tường minh, sau đó không còn phép chuyển nào nữa vì hai bên đã cùng kiểu. Lựa chọn "double t = (int) 2.7;" cũng có một bước ngầm từ int lên double, nhưng bước ấy giữ nguyên giá trị, còn thay đổi đáng kể là cắt 2.7 xuống 2 thì đã do phép ép kiểu tường minh làm, nên dòng này tiêu biểu cho chuyển kiểu tường minh.
Cùng phần 2
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây