int main(void)
{
int array[] = {1,2,3,4,5,6,7};
int i = -1;
if(i <= (sizeof(array)/sizeof(array[0])) -2)
printf("a\n");
else
printf("b\n");
return(0);
}
我不知道为什么IF表达式是错误的。
答案 0 :(得分:0)
您正在尝试比较有符号整数int
和无符号整数size_t
。
遵循C整数提升规则,i
被提升为无符号整数,因此包装到一个非常大的数字。将它与右侧的小值进行比较时,结果为false。