ふと気になった,*p++
たとえば,
int main( int argc, char **argv ) { argv++; while ( argc-- > 0 ) { printf( "%s\n", *argv++ ); } return 0; }
ってなのがあったとき,コマンドライン引数が表示されるはずですが,
ふと思ったことがあります。
これ「*argv++」。
こないだ,post-increment は dereference よりも優先順位が高いと書いたけど,
よく考えたら,混乱してきた。
左から評価されて,つまり,dereference されて,続いて,インクリメントされる。
というのが,私の解釈でしたけど,演算子の優先順位で考えると,
あれ? と思ってしまいます。
演算子の評価順番,つまり,left-to-right, right-to-left の違いからくるのかな?
K&R に載ってたかなぁ。思い出せん。
誰か教えてください。