首先我们类比%d,可以知道这个是一个格式声明
既然如此,那它对应哪些数据类型呢?
这里我举两个简单的🌰
sizeof
strlen
我们以sizeof为例
sizeof的计算结果是size_t类型的,是无符号的整数(长度),并没有规定具体的类型,而是留给系统自己去决定,sizeof到底返回什么类型,不同的系统中 返回值的类型有可能是unsigned int ,也有可能是unsigned long,等等
那么它对应的printf()占位符分别是%u,%lu
这样不利于程序的可移植性
此时c语言创造了一个类型别名size_t,用来统一表示sizeof的返回值
此时%zd表示有符号型
%zu表示无符号型