【问题标题】:what is the difference between "*pointer++" and "(*pointer)++"? [duplicate]“*pointer++”和“(*pointer)++”有什么区别? [复制]
【发布时间】:2019-09-29 13:17:51
【问题描述】:

在我的程序中,我尝试增加指针,但我不确定为什么当我使用 *pointer++ 时它似乎也不起作用,并且它返回 1 作为新值。 我尝试在我的程序中使用“*pointer++”,就像您将指针用作数组一样 使用*pointer=*pointer+1
但似乎当我只使用“*pointer++”时,值变为一 但是当我使用(*pointer)++ 时它可以工作。为什么?

Node=(node *)malloc(num*sizeof(node));
printf("%d",Node);
Node++;
printf("%d",Node);

【问题讨论】:

    标签: c pointers increment


    【解决方案1】:

    *pointer++ 取消引用对象并增加pointer 本身,并在序列点之后指向(引用)下一个对象。

    (*pointer)++ 取消引用 pointer 并仅增加(在序列点之后)被引用的对象,而保持 pointer 不变

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2022-06-19
      • 2011-04-30
      相关资源
      最近更新 更多