为什么 printf 函数在将 NULL 作为字符串分配给它时返回 6 而不是 0,尽管它什么也没打印?
int main(void)
{
int x;
x = printf("%s", NULL);
printf ("\n%d", x);
}
输出为: (无效的) 6
为什么 printf 函数在将 NULL 作为字符串赋给它时返回 6 而不是 0
因为它打印了6个字符
(null)
是6个字符。
虽然它什么也没打印?
正在打印
(null)
。那是 6 个字符。
请注意,将
NULL
作为参数传递给 %s
格式说明符首先是 无效,并且存在未定义行为。有些实现(例如您正在使用的实现)会打印 (null)
而不是崩溃。