程序1:比較與負值的符號/無符號值之間
#include <stdio.h>
int main()
{
if (sizeof(int) > -1)
printf("Yes");
else
printf("No");
return 0;
}
輸出:No
計劃2:
#include <stdio.h>
int main()
{
if (2 > -1)
printf("Yes");
else
printf("No");
return 0;
}
輸出:Yes
問題:
- 程序1和程序2有什麼不同?
- 爲什麼
sizeof(int)
被認爲是unsigned
? - 爲什麼程序2中的
2
被認爲是signed
?
'2'是一個'signed int'文字。 '2u'將是'unsigned'。 –