[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: ポインターと参照
こんばんわ。高橋です。
ENDO Yasuyuki wrote:
>
> >ポインターと参照が同じならば表記法が違うのはなぜ?
>
> こちらですが、C++ の参照はポインターとは違います。
>
> <略...>
>
> C++ の参照の場合、一度初期化したらずっと同じ領域を指し続けます。
「一度初期化したら、再設定しない限り、ずっと同じ領域を指し続けます」
ですよね。
また、以下の (1), (2) のコードブロックは全く同じコードが生成される
ことから、ポインタ変数も参照(変数)も同じものであることが分かります。
struct Foo {
int x;
};
Foo a;
a.x = 2;
// (1)
Foo& r1 = a;
int b1 = r1.x;
// (2)
Foo* r2 = &a;
int b2 = r2->x;
> >Java の参照と C++ の参照は違うらしい。 -> どう違うのか?
>
> 本当は Java でもポインターと呼びたいところですが、
> C/C++ のポインターとは違うので参照と呼んでいます。
> でも C++ の参照とも違うので困っちゃうわけです。^^;
あれ? Javaの参照(変数)は、ポインタ値そのものではないですか?
------------
高橋智宏