问题:
int b = -1;
char* t = "ll";
if(b > strlen(t)){
printf("Yes");
}else{
printf("No");
}
在运行这段代码的时候,发现b总是大于strlen(t)的,即输出Yes。但是如果把b换成1,那么比较结果就正确了,输出No,即b < a。
我一开始以为是long型和int型的比较问题,因为编译器提醒我long型是%ld,但是打代码发现long型和int型的比较是正确的,那么请问为什么用负数和strlen()返回的数比较总是返回true呢?