• ベストアンサー

ポインタ同士の割り算

double *dkjiku0,*dkjiku1,*dkjiku2; *dkjiku0=1; *dkjiku1=2; dkjiku2=dkjiku0/dkjiku1;    を実行してみたところ、    「error C2296: '/' : 無効です。左オペランドには型 'double *' が指定されています。」とエラーが出てしまいます。  ポインタをポインタで割ることはできるのでしょうか?  できるのならば、どのように書けばいいのでしょうか?  宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#82346
noname#82346
回答No.3

例えば言えば、あなたの住所が 7 番地で、友人の住所が 152 番地のときに、7 番地を 152 番地で割るという演算ができますか?と聞いているようなものです。そのような演算を定義して、その結果に何らかの意味合いを見いだすことができますか? なお、ポインタではなくて、ポインタが指している内容(この例では double の値)同士で割り算をしたいのなら *dkjiku0 / *dkjiku1 のように記述してください。

spitzer3
質問者

お礼

dkjiku0が配列でして *dkjiku0[0]/ *dkjiku1 としてしまったから動かなかったようです。  dkjiku0[0]/ *dkjiku1 にしたところ動きました。 ご回答ありがとうございます。

その他の回答 (4)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

「ポインタをポインタで割る」ことの目的は? ちなみに *dkjiku2 = *dkjiku0/*dkjiku1; なんてやると楽しいことが起きます.

spitzer3
質問者

お礼

dkjiku0が配列でして *dkjiku0[0]/ *dkjiku1 としてしまったから動かなかったようです。  dkjiku0[0]/ *dkjiku1 にしたところ動きました。 ご回答ありがとうございます。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.4

「ポインタをポインタで割る」ことはできません。 「ポインタの示すアドレスに格納されている内容で割る」ことはできます。 但し、 >double *dkjiku0,*dkjiku1,*dkjiku2; >*dkjiku0=1; >*dkjiku1=2; >dkjiku2=dkjiku0/dkjiku1; だけでは、すべてのポインタの指し示すアドレスが不定(領域宣言されていない)のため、 No.3氏の回答のように変更しても、どのような挙動を行うかは不定です。

spitzer3
質問者

お礼

dkjiku0が配列でして *dkjiku0[0]/ *dkjiku1 としてしまったから動かなかったようです。  dkjiku0[0]/ *dkjiku1 にしたところ動きました。 ご回答ありがとうございます。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

ふつうポインタ同士の演算で、わり算をすることはありません。 どうしてそのようなことをなさりたいのでしょうか。 その辺の事情を提示されると良い回答が得られるかもしれませんよ。

spitzer3
質問者

お礼

ポインター同士の計算について勉強させて頂きありがとうございま した。  どうも自分が求めようとしていたのはポインターの内容の計算をどうすればいいのかのようです。  ご回答ありがとうございました。  

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

>ポインタをポインタで割ることはできるのでしょうか? できません。 ポインター同士の四則演算のうち、できるのは引き算だけです。

spitzer3
質問者

お礼

 ポインター同士の計算について勉強させて頂きありがとうございま した。  どうも自分が求めようとしていたのはポインターの内容の計算をどうすればいいのかのようです。  ご回答ありがとうございます。  

関連するQ&A