代码之家  ›  专栏  ›  技术社区  ›  O'Kara

C++以其他方式增加指针

  •  -1
  • O'Kara  · 技术社区  · 6 年前

    我确实查过其他问题,但它们更像 ++*ip *ip = *ip+1 有点问题。

    好了,希望我能理解

    做什么

    *(ip+1) = *ip;
    

    是什么意思?

    1 回复  |  直到 6 年前
        1
  •  2
  •   vrtex    6 年前

    它将ip指向的对象的值赋值给ip指向的对象之后的对象。最好用一个例子来解释: 假设ip指向int数组中的第一个int:

    [4, 5, 10, -1]
    

    这里ip指的是4。

    ip+1
    

    表示要将指针向右移动一个位置(现在指向5)

    *(ip+1) and *ip
    

    是指针取消引用。这意味着我们希望操作对象的值而不是指针本身。所以说 *(ip+1) = *ip; 您希望将ip指向的值分配给ip+1指向的对象(通常是数组中的下一个对象)。在此之后,我们的示例数组如下所示:

    [4, 4, 10, -1]
    

    请注意,这需要您分配ip+1指向的内存。这也适用于任何类(不仅仅是int)