Tôi đã viết một tuyên bố printf nhỏ mà đang làm việc khác nhau trong C và C++:Liệu các hoạt động của nhà điều hành sizeof khác nhau trong c andd C++
int i;
printf ("%d %d %d %d %d \n", sizeof(i), sizeof('A'), sizeof(sizeof('A')), sizeof(float), sizeof(3.14));
Các đầu ra cho các chương trình nêu trên trong c sử dụng trình biên dịch gcc là 4 4 8 4 8
các đầu ra cho các chương trình nêu trên trong C++ sử dụng g ++ biên dịch là 4 1 8 4 8
tôi mong đợi 4 1 4 4 8 trong c. Nhưng kết quả không phải như vậy.
Tham số thứ ba trong sizeof printf (sizeof ('A')) được đưa ra 8
bất cứ ai có thể cho tôi lý do cho điều này
vs2012: '' 4 1 4 4 8''. – gongzhitaao