全局变量,没有给初始值时,编译其会默认将其初始化为0。
sizeof返回值为无符号整型,若传入的数据不是无符号整型,则会对其进行转换
eg:
#include <stdio.h>
int i;
int main()
{
i--;
if (i > sizeof(i))
{
printf(">\n");
}
else
{
printf("<\n");
}
return 0;
}
i为给初始值,默认为0,i--后为-1
第一个if判断sizeof(-1),而sizeof返回值是个无符号整型,会将-1转为无符号整型,为一个很大的数,所以返回值为8,判断为nan>8?,为True,所以输出为>