嗨我有一个简单的代码打印charater数组的三个字符,如下所示
void main()
{
char str[]={65,66,67};
printf("%.3s",str);
}
Run Code Online (Sandbox Code Playgroud)
这给出了输出ABC,但我想知道因为这不是一个字符串意味着它不是空终止然后如何%s工作并给出正确的结果?
cni*_*tar 10
由于您传递了字符串的长度,因此printf不需要0终止符.
7.21.6.1 - 8
如果指定了精度,则不会写入多个字节.如果未指定精度或大于数组的大小,则数组应包含空字符.