为什么用 %s 打印空字符 ('\0', 0) 实际上会打印 "(null)" 字符串?
像这样的代码:
char null_byte = '\0';
printf("null_byte: %s\n", null_byte);
...印刷:
null_byte: (null)
...它甚至在 Valgrind 下运行没有错误,我得到的只是编译器警告warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat]
(注意:我在 32 位 Ubuntu 上使用 gcc 4.6.3)