递增后结果应为11,为12,为什么?

时间:2016-09-12 08:28:34

标签: c++ pointers

using namespace std;
int main()
{    
    int n, *p1, *p2;
    n = 10;
    p1 = &n; 
    p2 = p1;
    (*p1)++;
    (*p2)++;
    cout << *p1 << " " << *p2 << " "<< n << endl ;      
    return 0;   
}

1 个答案:

答案 0 :(得分:3)

*p1引用指针p1指向的值。 (*p1)++会将n的值增加1,(*p2)++将再次对n进行增量,因为它指向p1的相同位置。因此,n将增加到12. *p1*p2n因此会有12.所以它会打印12。