微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 *c++ 增加指针值而不是第一个 Char 的 ascii?

如何解决为什么 *c++ 增加指针值而不是第一个 Char 的 ascii?

#include <stdio.h>

int main() {
    char *c = "test";

    while (*c != '\0') {
        printf("%c",*c);
        *c++; // or c++ both produced same result. ie test
    }

    return 0;
}

因为 *c++ 应该增加值,而 c++ 应该增加指针地址。但是两者都是递增指针为什么?

解决方法

这是因为运算符优先级 ++ 的优先级高于 *

,

但两者都增加指针为什么?

那是因为所谓的运算符优先级。看看here

如果你想增加价值,那么你应该这样做

strip

作为一点建议,您的代码更像是“C”而不是“C++”。尽可能避免使用原始指针并使用 iostream 库而不是 (*c)++ //increment the value at address c

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。