• ベストアンサー

プログラミングで.ドットは演算子だから、オペランド

プログラミングで.ドットは演算子だから、オペランド?される文字を操作operateするということですか? つまりくっつける文字列演算子+やマイナスのように。

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

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

>>左右のオペランドとはなんですか? オペランドは右辺だけじゃないんですか? たとえば、 「1 + 2」 この場合オペレータは「+」で、 オペランドは「1」「2」です。 「1」を左オペランド「2」を右オペランドと呼びます。 また、代入演算 「a = 1 + 2」であれば、 「=」の左オペランドは「a」であり、 右オペランドは「1 + 2」です。 オペレータが2段階なので、オペランドも2度分割されます。 「1 + 2 + 3」は、多分大半のプロブラム言語で 「1 + 2」が左オペランドで、「3」が右オペランドになります。 (これは私の勘違いで逆の可能性もありますが、調べるのは  超大変なので、ここではそういうことにします) 単項演算子はオペランドが1つ 二項演算子はオペランドが2つ 三項演算子はオペランドが3つ(但し1つはスキップされる) です。 「.」演算子の場合、右辺は通常オペランドではなく「メンバ」 と呼ばれます。この場合は右辺だけが対象です。 「メンバ」のことを「オペランド」という表現方法があるなら、 貴殿の言うことは限定的に正しいですが、 総合的に見て誤りです。

okwaveokw
質問者

お礼

ありがとうございます >右オペランドは「1 + 2」です 右オペランドは「1 + 2」で +のオペランドは1で右オペランドは2 と2度分割されるという意味ですか? >「1 + 2 + 3」は、多分大半のプロブラム言語で 「1 + 2」が左オペランドで、「3」が右オペランドになります。 これはよくわからないですね 1+2+3+4だとどうなるんですか? >単項演算子はオペランドが1つ 二項演算子はオペランドが2つ 三項演算子はオペランドが3つ(但し1つはスキップされる) です。 単項 の項は何を指していますか?

その他の回答 (3)

  • _kappe_
  • ベストアンサー率68% (1584/2309)
回答No.4

>1+2+3+4だとどうなるんですか? 現在使われているプログラミング言語であれば多くの場合1+2+3+4は((1+2)+3)+4と同じものとして解釈され、左側の+(加算)から順に実行されます。 つまり、 ・一つめの+:左オペランドは1、右オペランドは2 ・二つめの+:左オペランドは1+2の結果、右オペランドは3 ・三つめの+:左オペランドは1+2+3の結果、右オペランドは4 となります。 一方、ここに*(乗算)や/(除算)が混じると計算順序が変わってきます。 1+2*3を例にすると、数学での記法と同じように+よりも*のほうを優先して計算を実行します。説明のために括弧をつけるなら1+(2*3)となります。 ・*:左オペランドは2、右オペランドは3 ・+:左オペランドは1、右オペランドは2*3の結果 です。 このあたりのことは「演算子の優先順位」とか「構文解析」というものを勉強すればもっと詳しいことが分かりますが、ここでは省略します。 >単項 >の項は何を指していますか? これは日本語訳があまり良くないと思うのですが、この場合は「項」はオペランドを意味すると考えてください。つまり、オペランドを一つだけ持つ演算子が単項演算子、オペランドを二つ持つ演算子が二項演算子です。 参考までに、単項演算子は英語だとunary operator、二項演算子はbinary operatorです。

okwaveokw
質問者

お礼

ありがとうございます

回答No.2

c/c++ や java などで、クラスや構造体、共用体の メンバにアクセスする際に「.」が使用される場合が ありますが、演算子の中では特殊なものに属するでしょう。 つまり「+」「-」などで左右のオペランド(被演算子)を 演算したり、単項演算子のように右辺のオペランドに意味を与えたり。 三項演算子のように、条件判断で演算結果を選択するなど、 予め決まった用途で使用するのではなく、 プログラマが実現したい用途のために、ある「メンバ」に アクセスするために使用されるものだからです。 また、 >>プログラミングで.ドットは演算子だから と、言い切ってしまうのは危険です。 シェルスクリプトのコマンドの「.」と、 正規表現の「.」 そして小数点の「.」などもプログラミングで 頻繁に使用されるからです。

okwaveokw
質問者

お礼

左右のオペランドとはなんですか? オペランドは右辺だけじゃないんですか?

  • _kappe_
  • ベストアンサー率68% (1584/2309)
回答No.1

https://okwave.jp/qa/q9950477.htmlの回答No.5で、「プログラミングで」で質問を始めるのはやめたほうがいいとアドバイスしました。 ドットあるいはピリオド(.)が演算子ではないプログラミング言語もあるのです。たとえば、PythonとかRubyではドットは演算子ではありません。 「演算子」は英語のoperatorの訳である場合が多いです。「オペランド」(operand)は訳せば「被演算子」。演算子による演算の対象になるものです。

okwaveokw
質問者

お礼

そうなんですか?勉強になります! ドットあるいはピリオド(.)が演算子ではないプログラミング言語もあるのです。たとえば、PythonとかRubyではドットは演算子ではありません。

関連するQ&A

専門家に質問してみよう