像这个代码,比如我的字符串是图片上的,第一个while过后,第二个while循环时*p是不是指向的a?还是说第二个while的时候,*p还是指向字符串首

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

img


char *fun(char *a)
{
    char *p=a,*q;

    while(*p=='*' && *p) p++;

    while(*p)
    {
        if(*p=='*')
        {
            q=p;

            while(*q)
            {
                *q=*(q+1);
                q++;
            }
            continue;
        }

        p++;
    }

    return a;
}