我想计算: (-15 % 3) 这应该是 0 但我得到的是 1:
当我明确这样做时:
int IntFcn (const void *key, size_t tableSize)
{
printf("%d\n",(*(int*)key)); // prints -15
printf("%d\n",tableSize); // prints 3
printf("%d\n",(-15) % 3); // prints 0
}
我得到了正确的结果(0),但是当我尝试使用下面的变量时,我得到 1:
int IntFcn (const void *key, size_t tableSize)
{
printf("%d\n",(*(int*)key)); // prints -15
printf("%d\n",tableSize); // prints 3
printf("%d\n",((*(int*)key) % tableSize)); // prints 1
return ((*(int*)key) % tableSize);
}
为什么会这样?