“ * pointer ++”和“(* pointer)++”之间有什么区别?

时间:2019-05-12 09:16:44

标签: c pointers increment

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

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

1 个答案:

答案 0 :(得分:4)

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

(*pointer)++解除对pointer的引用,并仅在引用点之后(在序列点之后)增加并保留pointer不变