c - 指针运算中的一元递增运算符

标签 c pointers increment operator-keyword

这是我的第一篇文章。

我有这个函数可以在 C 中反转字符串 我发现的。

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

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

reverse(c + 1);

与:

reverse(++c);

原始字符串的第一个字符被截断。我的问题是为什么 在这种情况下语句不等价?

谢谢

最佳答案

因为 c + 1 不会更改 c 的值,而 ++c 会。

关于c - 指针运算中的一元递增运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532750/

相关文章:

java - 通过 JNI 从 pthread 回调失败

c - mingw64 pjsip sizeof(fd_set) 总是双倍 sizeof(pj_fd_set_t) 导致 sock_select.c 中的断言

c - 限制#include 只搜索当前目录

c++ - 对此指针程序提供反馈

c++ - 返回类指针 C++

python - 如何在不转换为整数的情况下递归递增二进制数(以列表形式)?

MySQL - 表中的第二个序列(例如按类别)

c - 任何可用于将 c99 样式注释//转换为 c 样式注释/* ..*/到整个项目的工具/脚本?

c - 全局字符指针(C 编程)

javascript - 尝试根据用户输入显示数组中的元素