4 c
可能重复:
一个谜语(在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;
}
Run Code Online (Sandbox Code Playgroud)
现在这个循环不会运行.sizeof()将返回无符号值,因此TOTAL_ELEMENTS具有无符号值.现在,进入for循环,请告诉我,如果一元运算符' - '在signed int 2上工作或隐式转换发生在unsigned中,然后' - '运算符工作.