メモ:ポインタのインクリメントについて
int *pについて。+は値が1増加したことを示す。はじめのp,p[0],p[1]の値は式の評価時時点での値。その次が評価終了時点での値。
*と++は優先順位が等しい(右から左へ評価される)
式 | 評価値 | p | p[0] | p[1] | p | p[0] | p[1] | |
---|---|---|---|---|---|---|---|---|
*++p | p[1] | + | - | - | - | - | - | |
++*p = ++(*p) | p[0]+1 | - | + | - | - | - | - | |
*p++ | p[0] | - | - | - | + | - | - | |
(*p)++ | p[0] | - | - | - | - | + | - | |
++*++p = ++(*++p) | p[1]+1 | + | - | + | - | - | - | |
(*++p)++ | p[1] | + | - | - | - | - | + | |
impossible | p[1] | + | + | - | - | - | - | |
impossible | p[1] | + | - | - | - | + | - | |
++*p++ = ++(*p++) | p[0]+1 | - | + | - | + | - | - | |
(*p++)++ | p[0] | - | - | - | + | + | - | |
impossible | p[0] | - | - | + | + | - | - | |
impossible | p[0] | - | - | - | + | - | + |