K.Maebashi's BBS

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

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


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


[2068] Re:【C言語ポインタ完全制覇】ポインタはどれだけ進む?
返信


投稿者:(ぱ)こと管理人
2017/12/20 00:23:07

Link:
>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だけ進む。」

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



[ より新しい投稿] [ より古い投稿]