C语言char类型指针问题


#include 

void p_printf(char *p1)
{
    while (*p1 != 0)
        printf("%c", *p1++);
}

void main()
{
    char* p;
    gets(p);
    p_printf(p);
}

这个代码为什么输入的元素超过15个就会打印空元素

img

您好,关于您描述的char类型的指针打印空元素的问题,这是因为C语言char类型指针的默认大小是15个字节,超过15个字节就会越界,从而打印出空元素。