#include <stdio.h>
int i;
int main()
{
i--;
if (i > sizeof(i))
{
printf(">\n");
}
else
{
printf("<\n");
}
return 0;
}
答案:‘>’
全局变量是放在静态区的,创建的时候默认初始化为0;
局部变量是放在栈区的,创建的时候如果不初始化里面放的是随机值;
sizeof的返回类型为size_t,是一个无符号整形;
i - - 等于 - 1;
当一个负数和无符号整形做比较的时候会发生算数转换,将负数转换为无符号整形,而-1的无符号整型是非常大的,所以最后结果是‘>’。