Tôi cố gắng để gia tăng giá trị bool với nhau, nói:thêm hai giá trị bool trong c/C++
bool i = 0, j = 0, k = 0;
cout << sizeof(i + j + k) << endl;
Kết quả là 4, có nghĩa là, kết quả được chuyển thành một 'int' giá trị.
Tôi muốn hỏi: Đây có phải là hoạt động chuẩn C/C++ không? trình biên dịch luôn đảm bảo rằng giá trị tạm thời được chuyển đổi thành loại lớn hơn nếu nó tràn? Cảm ơn!
Cảm ơn câu trả lời, người ta theo dõi câu hỏi: nói, nếu tôi làm: unsigned short i = 65535, j = 65535;
cout << sizeof(i + j) << endl;
Kết quả là 4. Tại sao nó được thăng 'int'?
int không phải là loại lớn hơn bool – aaronman
Trình biên dịch có luôn đảm bảo rằng giá trị tạm thời được chuyển thành loại lớn hơn nếu nó tràn không? Không, nó không bao giờ chuyển đổi một giá trị thành loại lớn hơn cho đến khi một diễn viên được yêu cầu. – Tushar
@aaronman: Trong hầu hết các hiện thực 'sizeof (bool)