首页 > 解决方案 > 为什么 *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++ 应该增加指针地址。但是两者都在增加指针,为什么?

标签: cchar-pointer

解决方案


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


推荐阅读