【C语言】用递归实现字符串逆序的曲折之路

先看一下简洁版的。
1.成功版

#include<stdio.h>  
#include<windows.h>
char s[1000];
void reverse(char *s)
{

    if (*s)
    {
        reverse(s+1);
        printf("%c", *s);
    }
    return;     
}

int main()
{
    gets_s(s, 100);
    reverse(s);
    printf("\n");

    system("pause");
    return 0;
}

错误案例1.
这里写图片描述
输出:
这里写图片描述

错误案例2.
那++前置怎么样呢?

#include<stdio.h>  
#include<windows.h>
char s[1000];
void reverse(char *s)
{

    if (*s)
    {
        reverse(++s);
        printf("%c", *s);
    }
    return;     
}

int main()
{
    gets_s(s, 100);
    reverse(s);
    printf("\n");

    system("pause");
    return 0;
}

这里写图片描述

总结:
1.++s 与s++ 不行
原因还不清楚,反思一下,不知道谁可以解决,共同进步?