为什么这个自定义函数能一口气把剩下所有字符输出?


char *copystrchr(const char *str , int n)
{
    while(*str != '\0')
    {
        if(*str != n )        
            str++;        
        else        
            return str;       
    }
}

这个自定义函数我第一个参数传入一个字符串,第二个参数传入一个判定字符。但是为什么返回值会是判定字符后面的一大串?是while在作怪吗?

字符串是连续存放以\0结尾的的,只要知道了第一个字符的位置可以依次输出余下的字符,直到遇到\0

字符串的特点就是这样的