[2068] Re:【C言語ポインタ完全制覇】ポインタはどれだけ進む?
投稿者:(ぱ)こと管理人
2017/12/20 00:23:07
>2-3-2ポインタ型派生で(第1版p151、第2版p172)、「くどいようですが繰り返して
>おきます。ポインタに対して加算を行うと、そのポインタの指す型のサイズだけ、
>ポインタが進むのでした。」とありますが、ポインタの指す型のサイズだけ進むのは、
>(通常のポインタの実装では)【アドレス】であって、ポインタが進む大きさは、
>ポインタに加算した量だけ、ではないでしょうか?
この「ポインタが〇〇だけ進む」という表現は、第2版p.56の
>ポインタって、要するにアドレスのことなんだろ?
>だったら、1足したら1進むに決まってるじゃないか!
のところから一貫して「バイト数」を指しているつもりです。
私だって普通にポインタ演算(まあめったに使いませんが)でintの配列の
次の要素を指す時には、「4バイト先」なんてことを意識したりはしませんが、
この本では、「そのポインタの指す型のサイズだけ、ポインタが進む」ということを
強く意識しないと、たとえばp.195の
「ポインタにi加算することは、そのポインタが指す型のサイズ×iだけ、
ポインタを進めることを意味する。hogeの指す先の型は「intの配列(要
素数5)」であるから、hoge + iでは、sizeof(int[5]) * iだけ進む。」
という説明が意味不明になってしまうのではないでしょうか。
そして、こういう説明が必要だと思ったからこそ、私はこの本を書いたわけです。