*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;
}
**--- **