- ベストアンサー
ポインタ同士の割り算
double *dkjiku0,*dkjiku1,*dkjiku2; *dkjiku0=1; *dkjiku1=2; dkjiku2=dkjiku0/dkjiku1; を実行してみたところ、 「error C2296: '/' : 無効です。左オペランドには型 'double *' が指定されています。」とエラーが出てしまいます。 ポインタをポインタで割ることはできるのでしょうか? できるのならば、どのように書けばいいのでしょうか? 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
例えば言えば、あなたの住所が 7 番地で、友人の住所が 152 番地のときに、7 番地を 152 番地で割るという演算ができますか?と聞いているようなものです。そのような演算を定義して、その結果に何らかの意味合いを見いだすことができますか? なお、ポインタではなくて、ポインタが指している内容(この例では double の値)同士で割り算をしたいのなら *dkjiku0 / *dkjiku1 のように記述してください。
その他の回答 (4)
- Tacosan
- ベストアンサー率23% (3656/15482)
「ポインタをポインタで割る」ことの目的は? ちなみに *dkjiku2 = *dkjiku0/*dkjiku1; なんてやると楽しいことが起きます.
お礼
dkjiku0が配列でして *dkjiku0[0]/ *dkjiku1 としてしまったから動かなかったようです。 dkjiku0[0]/ *dkjiku1 にしたところ動きました。 ご回答ありがとうございます。
- arain
- ベストアンサー率27% (292/1049)
「ポインタをポインタで割る」ことはできません。 「ポインタの示すアドレスに格納されている内容で割る」ことはできます。 但し、 >double *dkjiku0,*dkjiku1,*dkjiku2; >*dkjiku0=1; >*dkjiku1=2; >dkjiku2=dkjiku0/dkjiku1; だけでは、すべてのポインタの指し示すアドレスが不定(領域宣言されていない)のため、 No.3氏の回答のように変更しても、どのような挙動を行うかは不定です。
お礼
dkjiku0が配列でして *dkjiku0[0]/ *dkjiku1 としてしまったから動かなかったようです。 dkjiku0[0]/ *dkjiku1 にしたところ動きました。 ご回答ありがとうございます。
- tatsu99
- ベストアンサー率52% (391/751)
ふつうポインタ同士の演算で、わり算をすることはありません。 どうしてそのようなことをなさりたいのでしょうか。 その辺の事情を提示されると良い回答が得られるかもしれませんよ。
お礼
ポインター同士の計算について勉強させて頂きありがとうございま した。 どうも自分が求めようとしていたのはポインターの内容の計算をどうすればいいのかのようです。 ご回答ありがとうございました。
- asuncion
- ベストアンサー率33% (2127/6289)
>ポインタをポインタで割ることはできるのでしょうか? できません。 ポインター同士の四則演算のうち、できるのは引き算だけです。
お礼
ポインター同士の計算について勉強させて頂きありがとうございま した。 どうも自分が求めようとしていたのはポインターの内容の計算をどうすればいいのかのようです。 ご回答ありがとうございます。
お礼
dkjiku0が配列でして *dkjiku0[0]/ *dkjiku1 としてしまったから動かなかったようです。 dkjiku0[0]/ *dkjiku1 にしたところ動きました。 ご回答ありがとうございます。