- ベストアンサー
アドレス型へのキャストはなぜ
アドレスのキャストはなぜ (int &)&a; ではなく &(int &)a; としなくてはいけないんでしょうか? 色々と調べてみてもわからず・・・。回答よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
用途によって使い分けます。 > (int &)&a; としなければ目的を満たせない場合もあるし、 > &(int &)a; としなければ目的を満たせない場合もあります。 ですから、 > アドレスのキャストはなぜ > としなくてはいけないんでしょうか? と言う質問は、何か勘違いしているかと思います。 調べるなら、 > (int &)&a; と > &(int &)a; が、 それぞれ、どのような意味を持つのかを調べると良いのでは、ないでしょうか。
その他の回答 (1)
- salsberry
- ベストアンサー率69% (495/711)
回答No.2
元のaの型は何で、結果として何が得られることを想定していますか? *(int *)aのような書き方なら珍しくはないんですが。
質問者
お礼
(int &)(&a); としたらエラーが出ていたので、この書き方はいけないものかと勘違いしていました。 キャスト演算子をしっかり理解していなかったのが原因で勘違いしていたようですが、しっかり考えたら解決できました。 回答ありがとうございました!
お礼
勘違いしていました。 考えてみたところ、キャスト演算子が単項演算子だと言うことで納得がいきました。 回答ありがとうございました!