K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[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だけ進む。」 という説明が意味不明になってしまうのではないでしょうか。 そして、こういう説明が必要だと思ったからこそ、私はこの本を書いたわけです。
[この投稿を含むスレッドを表示] [この投稿を削除]