为什么用后增量增量器操作指针时,指针的行为会有所不同?

时间:2018-06-24 09:01:03

标签: c++ pointers post-increment

让我们看看第一个代码:

以下代码显示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;
}

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:3)

运算符优先级。

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

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