为什么指针在 post 增量运算符操作时表现不同?

Why do pointers behave differently when operated by post increment oparator?

让我们看第一个代码:

以下代码显示n=10的值:

#include<iostream>
int main()
{
    int n=10;
    int*p=&n;
    *p++;
    std::cout<<n;
    return 0;
}

以下代码显示n=11的值:

#include<iostream>
int main()
{
    int n=10;
    n++;
    std::cout<<n
    return 0;
}

运算符优先级。

第一种情况被解析为*(p++); - 首先递增地址然后取消引用。这不会修改任何值。

第二种情况只是增加了值本身。

p++ 递增指针。您需要 (*p)++ 来递增该值。