Để in biến kiểu size_t, nên sử dụng định dạng %zu. Việc dùng %d cũng không báo lỗi nhưng không chuẩn xác vì size_t là kiểu không dấu (unsigned).
Trong %zu, z là modifier độ dài (length modifier), u đại diện cho kiểu unsigned.
Ví dụ
#include <stdio.h>
int main() {
size_t a = 20;
printf("Gia tri cua a: %zu", a);
return 0;
}
Kết quả
Gia tri cua a: 20
Giải thích: Biến a kiểu size_t được khởi tạo giá trị 20. Lệnh printf("%zu", a) in ra đúng giá trị.
Lưu ý: Trên một số trình biên dịch cũ (C89/C90),
%zu có thể không hỗ trợ. Trong trường hợp đó, có thể ép kiểu: printf("%lu", (unsigned long)a) hoặc dùng PRIuPTR từ <inttypes.h>.