目录
一、%u
- 用于输出无符号整数(unsigned int)。
- 例如:
unsigned int a = 10;
printf("%u\n", a);
- 这里
%u
要求对应的参数是unsigned int
。
总结:
%u
:专门用于输出 unsigned int 类型的值。- 不可以用来输出其他类型,比如
unsigned short
、unsigned long
,虽然在某些平台上,传入合适类型的值可能还能正确显示,但标准应使用专对应的格式说明符。
如果你要输出其他大小的无符号整数,有以下对应的格式说明符:
%hu
:unsigned short%lu
:unsigned long%llu
:unsigned long long(C99引入)
二、%zu
- 用于输出
size_t
类型的变量。 size_t
是一个无符号整数类型,用于表示对象大小(比如通过sizeof()
获得的值)。- 特别说明:
%zu
是在C99标准中引入的,确保在不同平台和编译器上都能正确输出size_t
值。 - 例如:
size_t size = sizeof(int);
printf("%zu\n", size);
三、区别总结
格式说明符 | 作用对象 | 说明符作用 | 例子 |
---|---|---|---|
%u | unsigned int | 输出无符号整数 | unsigned int a = 5; printf("%u", a); |
%zu | size_t | 输出对象大小,用于sizeof() | printf("%zu", sizeof(int)); |
如果你用 %u
输出 size_t
变量,可能会因类型不匹配在某些平台上出现问题,使用 %zu
更加安全和符合标准。