(const char *)++或(const char)++?

时间:2013-12-20 10:51:34

标签: c++ string

#include <iostream>
#include <cstring>

using namespace std;

int main() {
    char *str = "hello";

    while (*str) {
        cout << *str;
        *str++;
    }

    return 0;
}

#include <iostream>
#include <cstring>

using namespace std;

int main() {
    char *str = "hello";

    while (*str) {
        cout << *str;
        str++;
    }

    return 0;
}

两个输出

hello

为什么在str++改变输出之前不添加或删除deference运算符?

2 个答案:

答案 0 :(得分:6)

Postfix ++的优先级高于去重新引用运算符*,所以

*x++;

相同
*(x++);

完全相同
x++;

答案 1 :(得分:5)

*str++表示*(str++)

由于您不使用该表达式的值,*无效。