1. 程式人生 > >【c語言】*p++、*++p、(*p)++、++*p 的區別學習

【c語言】*p++、*++p、(*p)++、++*p 的區別學習

為了清晰明瞭,我們每次都使p指向陣列的首地址。

(1)*p++

int b = *p++;//等價於a = *(p++); 即a = *p; p = p + 1;

執行上面語句,輸出b=10

執行語句*p++;後,*p=20;

(2)*++p

	int d = *++p;//等價於 p =p+1; d=*p;

*和++的優先順序相同,但根據它們的右結合性可知,先p=p+1;後d=*p;因此d=20

(3)(*p)++

int e = (*p)++;  等價於 *p;*p+1

此處括號的優先順序高於++運算子,因此先*p;後*p+1;因此e=10;之後再e+1

(4)++*p

	int f = ++*p;    等價於*p+1

*和++的優先順序相同,但根據它們的右結合性可知,先*p;後f=*p+1;因此f=11