プロが教えるわが家の防犯対策術!

アドレスのキャストはなぜ

(int &)&a;

ではなく

&(int &)a;

としなくてはいけないんでしょうか?
色々と調べてみてもわからず・・・。回答よろしくお願いします。

A 回答 (2件)

用途によって使い分けます。



> (int &)&a;
としなければ目的を満たせない場合もあるし、
> &(int &)a;
としなければ目的を満たせない場合もあります。

ですから、
> アドレスのキャストはなぜ
> としなくてはいけないんでしょうか?
と言う質問は、何か勘違いしているかと思います。

調べるなら、
> (int &)&a;

> &(int &)a;
が、
それぞれ、どのような意味を持つのかを調べると良いのでは、ないでしょうか。
    • good
    • 0
この回答へのお礼

勘違いしていました。
考えてみたところ、キャスト演算子が単項演算子だと言うことで納得がいきました。
回答ありがとうございました!

お礼日時:2009/09/23 00:05

元のaの型は何で、結果として何が得られることを想定していますか?



*(int *)aのような書き方なら珍しくはないんですが。
    • good
    • 0
この回答へのお礼

(int &)(&a);

としたらエラーが出ていたので、この書き方はいけないものかと勘違いしていました。
キャスト演算子をしっかり理解していなかったのが原因で勘違いしていたようですが、しっかり考えたら解決できました。
回答ありがとうございました!

お礼日時:2009/09/23 00:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!