这段代码怎么分析呀?


#include <stdio.h>
void fun(char *a,char B)
{
    while(*(a++)!='\0');
    while(*(a-1)<B)*(a--)=*(a-1);
    *(a--)=B;
}
main()
{
    char s[8]="pmfc",c;
    c=getchar();
    fun(s,c);
    puts(s);
}

逐句注释如下:

 //定义头文件
#include <stdio.h>
//fun函数
void fun(char *a,char B)//字符指针a 指向字符数组s B代表字符C
{
   //while循环移动字符数组直到‘\0’终止
    while(*(a++)!='\0');
   //将a移动到数组尾时,取终止符'\0'前一个的内容*(a-1) 将其与B比较
    while(*(a-1)<B)*(a--)=*(a-1); //如果小于 则将数组尾的值 赋值给数组a 之后进行a--
    *(a--)=B;//如果大于 则将B赋值给数组a后 a--
}
//主函数
main()
{
    //字符数组s 并存储字符串pmfc 定义字符变量c
    char s[8]="pmfc",c;
    //getchar()吸收一个字符
    c=getchar();
    //调用fun函数
    fun(s,c);
    //输出s
    puts(s);
}

以上仅供参考,如有任何疑问,可以评论回复,看到即回。
希望对题主有所帮助!可以的话,点个采纳!