thể trùng lặp:
Why are C character literals ints instead of chars?C và C++ khác biệt trong sizeof ('x')
Tại sao khi sử dụng C không sizeof('x')
trở lại 4 nhưng sizeof('x')
trong C++ trả 1?
C++ thường cố gắng để không có gì hơn một superset của C vậy tại sao hai kết quả phân kỳ?
Chỉnh sửa Chỉ cần làm rõ thêm. Điều này có vẻ như một động thái có chủ ý trên một phần của ủy ban tiêu chuẩn và tôi cho rằng việc thay đổi kích thước của 'x' sẽ không được thực hiện mà không có lý do chính đáng. Tôi quan tâm đến lý do là gì.
Nhiều hơn hoặc ít hơn một trùng lặp của [Kết quả kích thước khác nhau] (http://stackoverflow.com/questions/49046/different-sizeof-results), [Tại sao chữ C ký tự int thay vì ký tự?] (http://stackoverflow.com/questions/ 433895 /) và [Hiểu sizeof (char) trong trình biên dịch 32 bit C] (http://stackoverflow.com/questions/3451266/) và có lẽ một hoặc hai ot của cô ấy. Tìm thấy với http://stackoverflow.com/search?q=[c]+[c%2B%2B]+sizeof+character+literal. – dmckee
không có bản sao nào giải thích tại sao. – doron
@deus: Đó chỉ là một quyết định thiết kế. Cách "c" có nghĩa là trình biên dịch phải đưa ra quyết định ít hơn về loại khuyến mãi ('gây ra' khuyến mãi 'xảy ra mỗi lần) mà có thể đã phát một cuộn: các máy của những năm đầu bảy mươi chậm và có bộ nhớ hạn chế, vì vậy các trình biên dịch đơn giản là phải. – dmckee