【问题标题】:Result should be 11 after incrementing, it is 12, why? [closed]递增后结果应该是11,是12,为什么? [关闭]
【发布时间】:2023-03-09 22:32:01
【问题描述】:
using namespace std;
int main()
{    
    int n, *p1, *p2;
    n = 10;
    p1 = &n; 
    p2 = p1;
    (*p1)++;
    (*p2)++;
    cout << *p1 << " " << *p2 << " "<< n << endl ;      
    return 0;   
}

【问题讨论】:

  • 这是学习如何使用调试器的完美代码。调试器对于查找错误非常有用,也可以用于学习编程;)。您可以逐步运行代码,因此您可以在代码的每一行查看变量的演变

标签: c++ pointers


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    相关资源
    最近更新 更多