K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>>2-3-2ポインタ型派生で(第1版p151、第2版p172)、「くどいようですが繰り返して >>>おきます。ポインタに対して加算を行うと、そのポインタの指す型のサイズだけ、 >>>ポインタが進むのでした。」とありますが、ポインタの指す型のサイズだけ進むのは、 >>>(通常のポインタの実装では)【アドレス】であって、ポインタが進む大きさは、 >>>ポインタに加算した量だけ、ではないでしょうか? >> >>この「ポインタが〇〇だけ進む」という表現は、第2版p.56の >> >>>ポインタって、要するにアドレスのことなんだろ? >>>だったら、1足したら1進むに決まってるじゃないか! >> >>のところから一貫して「バイト数」を指しているつもりです。 > >(略) > >>そして、こういう説明が必要だと思ったからこそ、私はこの本を書いたわけです。 > >有難うございます。感謝しながら読ませて頂いております。 > >混乱してきました。あ、勿論、ポインタの指す先がどれだけ進むか?は、理解しているつもりです。 > > int i, iarray[10]; > int *ip; > > ip = iarray > >で int が 4bytes である場合に、 > > *(ip+2); > >が、iarray の先頭アドレスから 4*2=8bytes を参照していることはわかっているつもりです。 >この時、ip はポインタ(型の変数)ですよね? ですから、ip+2、すなわち、ポインタ(型の変数の値)に2加算したポインタ『値』は、あくまで2しか増えていないじゃない!、と僕は思ったわけです。そして、「ポインタが〇〇だけ進む」という表現は、『ポインタ「の値」が〇〇だけ進む』と読めました。その指す先は、勿論、8bytes 進んだ場所ですが… (ipとip+2の差はあくまで2ですが、ip+2がdereferenceする先とipがdereferenceする先の番地の差は、2*sizeof(int)、で、バイト数で考えて意味をもつのは、あくまでdereferenceする先では?) > >…というわけで、『ポインタ「の指し示すアドレス」が〇〇だけ進む』などという表現の方が、くどい文章になるけれど、誤解する僕のようなバカチンは減るのでは?と申したわけです。 > >細かくてすみません…
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!