Chọn kết quả in ra cho đoạn code dưới đây:
#include <iostream>
using namespace std;
int main() {
if(sizeof(int) > -1) {
cout << "True" << endl;
}
else {
cout << "False" << endl;
}
return 0;
}
- True
- False
0 voters
Chọn kết quả in ra cho đoạn code dưới đây:
#include <iostream>
using namespace std;
int main() {
if(sizeof(int) > -1) {
cout << "True" << endl;
}
else {
cout << "False" << endl;
}
return 0;
}
0 voters
À quên, mọi người chọn xong thì vào xem đáp án tại đây.
e chọn đúng rồi
tại sao lại như vậy ad
nó ghi ở dưới input is empty kìa bạn
Vì sizeof là hàm trả về giá trị kiểu unsigned int, mà unsigned int thì không có giá trị âm.
sizeof(int) = 4; (100 trong nhị phân)
còn -1 khi chuyển về nhị phân thì toàn là số 1
Thế nên -1 > 4 (nhị phân)
Muốn kết quả trả về đúng thì nên ép kiểu
if( (int)sizeof(int) > -1)
Em nghĩ đơn giản lắm, sizeof(int) biến int gì đó chưa khai báo, mà theo em nhớ thì cứ lỗi là hàm trả về giá trị -1 nên không thể nào > -1 được. Nên false
Bạn thử
cout << sizeof(int) << endl;
xem nó ra cái gì