Joe*_*Joe 6 c recursion c-strings post-increment function-declaration
我知道这里有一些关于 p++、++p 和 p+1 之间区别的解释,但我还不能清楚地理解它,尤其是当它不使用该函数时:
void replace(char * str, char c1, char c2){
    if (*str == '\0') {
        return;
    }else if (*str == c1) {
        printf("%c", c2);
    }
    else {
        printf("%c", *str);
    }
    replace(++str, c1, c2);
}
当我这样做replace(++str, c1, c2);或replace(str+1, c1, c2);它有效时,但replace(str++, c1, c2);没有。为什么?
replace(str++, c1, c2); 方法:  
replace(str, c1, c2);
str+=1;
而replace(++str, c1, c2);意味着:  
str+=1;
replace(str, c1, c2);