sizeof的值类型size_t在32位系统和64位系统下表示是不一样的。64位系统使用unsigned long类型,32位系统使用unsigned int类型。使用printf("%d",sizeof(int));并不是可移植代码。所以,C99引入了一个专门给size_t用的%zu。