#include
int main() {
int a=0;
unsigned ui=0;
if(0>(ui-1))
a=1;
printf("%d\n",a);
printf("%u\n",ui-1);
return 0;
}
if(0>(ui-1))这个条件不会满足的,因为 ui 是无符号数
运行程序后 a=0 为什么呢
unsigned ui=0;默认就是unsigned int ui=0;if语句不成立,你可以试试unsigned u2=ui-1;输出u2就知道了。
条件不成立,你可以试试
明白了。ui是无符号数,ui-1也是无符号数 所以0不可能大于无符号数,所以if表达式不成立。a=0