指针算术中的一元递增运算符

Rhy*_*uck 2 c pointers increment operator-keyword

这是我的第一篇文章.

我有这个函数来反转我找到的C中的字符串.

    void reverse(char* c) {
        if (*c != 0) {
            reverse(c + 1);
        }
        printf("%c",*c);
    }
Run Code Online (Sandbox Code Playgroud)

它工作正常,但如果我更换:

reverse(c + 1);
Run Code Online (Sandbox Code Playgroud)

有:

reverse(++c);
Run Code Online (Sandbox Code Playgroud)

原始字符串的第一个字符被截断.我的问题是为什么这些陈述在这种情况下不相同?

谢谢

Fre*_*son 7

因为c + 1不改变价值c,而且++c确实如此.