程序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'。 –