メモリ上のイメージを図にすると下のようになります。
(便宜上、文字列 "abc"の先頭アドレスを100と仮定しています。)
アドレス
┏━━━━┓ 100 ┏━━━━━━━━┓
ポインタ変数s ┃ 100 ┃ ┃ a (61h) ┃e(65h)に書換え
┗━━━━┛ 101 ┣━━━━━━━━┫
┃ b (62h) ┃()の中はASCIIコード
102 ┣━━━━━━━━┫
┃ c (63h) ┃
┗━━━━━━━━┛
変数Sには、100の値がセットされています、これはアドレス100を指定しており、
この中の値として、a (61h)の値を取得できます。
変数Sに102の値がセットされれば、c (63h)の値が取得できます。
参照するという意味で言うと、変数Sはアドレス100を指し示して(参照)います。
アドレス100の中身をeの値に変更した場合、aではなくeの値が取れます。
>クラスの変数を宣言すると、オブジェクトへの参照を保存するための領域が確保され
クラスの変数をSとした時、NEWキーワードを使うと、上記の図のようなアドレス領域が
確保されます。アドレスの中身には、オブジェクトの位置を示すアドレス値がセット
されます。(参照のさらに参照)
|