#include
int main()
{
unsigned int a=0;
if(a
{
printf("unsigned");
}
else
{
printf("signed");
}
}
打印结果为unsigned
分析:
如果a为无符号数,则a-1为有符号数,与操作符左边的类型不匹配,编译器会将a-1转换为无符号数,则表达式成立,会打印unsigned,否则打印signed。
#include
int main()
{
unsigned int a=0;
if(a
{
printf("unsigned");
}
else
{
printf("signed");
}
}
打印结果为unsigned
分析:
如果a为无符号数,则a-1为有符号数,与操作符左边的类型不匹配,编译器会将a-1转换为无符号数,则表达式成立,会打印unsigned,否则打印signed。