[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の参照(変数)は、ポインタ値そのものではないですか?

------------
高橋智宏