当有符号整数和无符号整数进行比较时,会将有符号整数看作无符号整数
#include<stdio.h>
int i;
int main()
{
i--;
if (i > sizeof(i))//i为-1,将有符号的符号位忽略,二进制为1111 1111
{
printf(">\n");
}
else
{
printf("<\n");
}
return 0;
}
调试结果为">"。
当有符号整数和无符号整数进行比较时,会将有符号整数看作无符号整数
#include<stdio.h>
int i;
int main()
{
i--;
if (i > sizeof(i))//i为-1,将有符号的符号位忽略,二进制为1111 1111
{
printf(">\n");
}
else
{
printf("<\n");
}
return 0;
}
调试结果为">"。