可能是重复问题:
一个谜语(用C语言)
看看这段代码
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};
int main()
{
int d;
for(d=-1;d <= TOTAL_ELEMENTS-2;d++)
printf("%d\n",array[d+1]);
return 0;
}
现在这个循环将不会运行。 sizeof()会返回一个无符号值,所以TOTAL_ELEMENTS也是无符号的。 现在,谈到for循环,请告诉我一元运算符'-'是否适用于有符号整数2或者隐式转换成无符号后再使用'-'运算符。