-
*p++
---先取指針p指向的值(數組第一個元素),再將指針p自增1;
*號和++(單目運算)兩個處於同一優先級,結合方向是自右向左,但是前提是當++在變量前面的時候才處理同一優先級,當++在變量之后時,++的優先級可以看成最低級的,比逗號運算符
的優先級還低。 -
(*p)++
---先取指針p指向的值(數組第一個元素),再將該值自增1; -
*++p
---先將指針p自增1(此時指向數組第二個元素),再取出該值; -
++*p
---先取指針p指向的值(數組第一個元素),再將該值自增1;#include<stdio.h> int Data[2] = {100,200}; int more[2] = {300,400}; int main(void) { int *p1,*p2,*p3; p1 = p2 = Data; p3 = more; printf("*p1 = %d, *p2 = %d, *p3 = %d\n",*p1,*p2,*p3); printf("*p1++ = %d, *++p2 = %d, (*p3)++ = %d\n",*p1++,*++p2,(*p3)++); printf("*p1 = %d, *p2 = %d, *p3 = %d\n",*p1,*p2,*p3); return 0; }
輸出結果如下: *p1 = 100, *p2 = 100, *p3 = 300 *p1++ = 100, *++p2 = 200, (*p3)++ = 300 *p1 = 200, *p2 = 200, *p3 = 301
注:在數組中,指針自增1代表指針指向下一個元素