問題タブ [postfix-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
551 参照

f# - F# の後置条件演算子

Perl 言語では、次のように書くことができます。

つまり、後置記法で条件を適用します。

F# は関数の操作が非常に柔軟であるため、F# にも同様のタイプの式があるに違いないと確信していました。でも書こうとすると

また

予期したエラー メッセージが表示されます。F# で多かれ少なかれ一般的な後置条件演算子を実装する方法はありますか?

0 投票する
2 に答える
1063 参照

c - 後置接頭辞 ++ および二項 & 演算子の優先順位

C の後置演算子と前置演算子の優先順位と混同しています。ヘルプとヒントがあれば役立ちます。

ここにテスト コードを貼り付けます。

postfix ++後置バージョンでは、優先順位は高くなりますが、ここでwitha++に戻り、この式の後に の値をインクリメントすることがわかりました。0&0x01a

しかし、私が理解できないのは、なぜプレフィックスバージョンで++a最初に評価されるのですか? 演算子の優先順位表は、prefix ++&が同じ優先順位を持ち、さらにそれらの結合性が であることを示していright-to-leftます。これは、最初に評価する必要があることを意味しません&か?

編集: 私が使用しているチャート: C Operator Precedence Table

0 投票する
1 に答える
714 参照

postfix-operator - 三項演算子とブール演算子を中置から後置に変換する

これらの 2 つの例を infix から postfix に変換するにはどうすればよいですか?

どちらの式でも、括弧を削除するだけでよいと思いました。しかし、後置から中置に変換しようとすると、式が無効になります。私は簡単な操作を行う方法を知っています:

...しかし、max 式と boolean 式を変換する方法がわかりません。

0 投票する
1 に答える
416 参照

c++ - C++ でプレフィックスが変数を 2 回インクリメントする

私は後置演算子と前置演算子に関するやや古典的な試験問題に直面しています。次の点を考慮してください。

試験問題は、プログラムの出力を求めます。私にとっては「3 は 2 より大きい」ですが、実際の出力は「4 は 2 より大きい」です。

ポストとプレフィックスがどのように機能するかは理解していますが (少なくとも私はそう思っていました)、変数が 2 回インクリメントされる方法がわかりません。これについての説明はありますか?

0 投票する
1 に答える
23 参照

gcc - libstd++ 後置演算子がハングする

次のプログラムがハングします。コードを変更して修正する方法はいくつかあります。

私の質問は次のとおりです。

  1. このコードを修正または回避するにはどうすればよいですか?
  2. libstdc++ または gcc のバグですか?

回答ありがとうございます。

0 投票する
1 に答える
213 参照

c - 後置記法 - スタック pop および push ヘルプ、mod または pow 演算子に対して誤った戻り値が返される

私のコードは目的が比較的単純で、コマンドライン引数を受け取り、それに応じてスタックを配置します。

コマンド ライン引数: "2 2 +" は 4 に等しい必要があります。

「2 2 +」を試してみたところ、うまくいきました。「2 4 + 3 / 6 +」もそうで、8 と評価されました。しかし、「2 4 ^ 2 * 5 % 2 - " 0 と評価されるはずですが、代わりに -2 が返されます。ここの欠陥は何ですか?

0 投票する
1 に答える
633 参照

c++ - 前置演算子と後置演算子の継承

次のコードを検討してください。

クラスの階層を作成しようとしました。プレフィックスのインクリメント/デクリメント演算子を実現するためだけの基本クラス。そして、派生クラスに後置バージョンを追加します。

ただし、コンパイラは派生クラス オブジェクトのプレフィックス操作を見つけることができません。

なぜこれが起こっているのですか、なぜ前置演算子が継承されないのですか?