*p++,(*p)++,*(p++)違い

4098 ワード

まず、()*++優先度の関係()優先度が最も高く、次にp++後自増、*と++p前自増優先度が同じであることを理解します.次に、3つの違いをコードで説明します.
# include 
int main (void)
{
 int a[5] = {1,2,3,4,5};
 int* p = a;
 int A;
 //  p  a[0]
  A = *p++;
 printf ("*p++ = %d
"
,A); printf ("*p = %d
"
,*p); //A 1 *p 2 *p A p = a; A = (*p)++; printf ("(*p)++ = %d
"
,A); printf ("*p = %d
"
,*p); //A 1 *p 2 *p a[0] a[0] A a[0] 1 p = a; A = *(p++); printf ("*(p++) = %d
"
,A); printf ("*p = %d
"
,*p); //A 2 *p 2 *(p++) *p++ ++ return 0; }
							**---         **