【C语言】题目,大一的知识点,指针,看不懂

1.算出程序运行结果

#include
void fun(char p,char b)
{ while(
(p++)!='\0');
while(*(p+1)<b)
(p--)=(p-1);
*(p--)=b;
printf("%s",p++);
}
int main()
{ char s[]="54679",c='3';
fun(s,c);
return 0;
}

这是书上练习,书上的答案是739,但我自己打代码是打的答案939,有大佬可以解释一下这是什么意思吗?我自己算出来的答案乱七八糟的,也不知道是书上的答案是不是正确的......
拜托大佬了谢谢!!

你的代码有语法问题,如果是这样写

#include <stdio.h>

void fun(char * p,char b)
{ while(*(p++)!='\0');
while(*(p+1)<b)
*(p--)=*(p-1);
*(p--)=b;
printf("%s",p++);
} 
int main()
{ char s[]="54679",c='3';
fun(s,c);
return 0;
}

结果是
939