問題タブ [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 に答える
511 参照

c# - `i += i++` が C では 1 で C# では 0 なのはなぜですか?

重複の可能性:
誰でもこれらの未定義の動作を説明できますか (i = i++ + ++i 、 i = i++ など…)

スタック オーバーフローに関する非常に良い質問がありました。

i = 0 の場合、(i += i++) が 0 に等しいのはなぜですか?

しかし、C で同じコードを試してみると、異なる結果が得られました。

ただし、次のとおりです。

C# では、++and=+演算子を評価します。まず、tempVar各 fo に代入し、 に対して操作を実行しtempVarsます。Cはそれをどのように実装しますか? それともアーキテクチャによって異なりますか?

0 投票する
0 に答える
2280 参照

python - 中置から後置へのコンバーター Python 2.7

宿題のためにPythonで中置から後置へのコンバーターを作成しようとしています.オンラインで複数のものを見つけましたが、それらは十分に単純に見えますが、必要な要件を満たしているものはありません. 次のクラスを使用する必要があります。

演算子の優先レベルを表す Integer を返す getPrecedence(): メソッドを追加する必要がありました。次のクラスも使用する必要がありました。

中置式を後置式に変換するプログラムを作成する必要があります。このプログラムは、Token クラスと Scanner クラスを使用する必要があります (上記で説明しました)。プログラムは、入力と出力を実行するメイン関数と、IFToPFConverter という名前のクラスで構成する必要があります。メイン関数は入力文字列を受け取り、それを使用してスキャナーを作成します。次に、スキャナーは、コンバーター オブジェクトのコンストラクターに引数として渡されます。次に、コンバーター オブジェクトの convert メソッドが実行され、中置式が変換されます。このメソッドは、後置文字列を表すトークンのリストを返します。メイン関数は、この文字列を表示します。これが私がこれまでに持っているものです:

ここからどこへ行けばいいのかわからないし、自分のIFToPFConverterクラスでやろうとしていることがうまくいくかどうかさえわからない. 後置コンバーターへのはるかに単純な中置を見てきました。

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

c - C のコード スニペットの説明

どこかでこのコード スニペットに出くわしましたが、それがどのように機能するのか理解できません。

出力:

このコード スニペットの動作を説明してください。

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

perl - コンパイル順とポストプレフィックス演算子

なぜ次の出力7 7 6 7の代わりに5 6 6 7

パラメータのコンパイルの順序と関係があると確信しています

ありがとう、

0 投票する
5 に答える
1351 参照

c++ - C++で後置演算子を避けるのはなぜですか?

「コンテキストで接頭辞を選択できる場合は、後置演算子を使用しないでください」と教授が言っているのを聞きました。検索しましたが、これを説明する関連記事がstackoverflowに見つかりませんでした。

いずれかを選択できるのに、なぜ operator++ よりもprefixoperator++を好むのでしょうか?postfix

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

c - 後置および前置演算子式を解決する方法は?

次のコードを書きました。

そして、私は次の結果を得ました:

私が知っているように、後置演算子と前置演算子はセミコロンの後に解決されます。元の値が式で使用され、変数が解決されます。その場合

に等しい必要があります

両方とも同等である必要があります

したがって、2 つの式の結果は同じでなければなりません。しかし、そうではありません。どこで間違った概念を持っているのか、誰でも助けてください。

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

c++ - C++ 演算子のオーバーロード プレフィックス/サフィックス

C++ で演算子のオーバーロードを学習しています。元のサフィックス ++ は、代入演算子よりも優先順位が低いという特性があります。たとえば、int i=0, j=0; i=j++; cout<<i<<j01 が出力されます。しかし、このプロパティは、後置 ++ をオーバーロードすると失われるようです。

(0,0)(1,1) を期待していたのに (0,0)(2,2) を出力します。

このような理由と、元のプロパティを復元する可能性を理解するのを手伝ってもらえますか?

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

c++ - 後置インクリメント演算子を適切にオーバーロードするには?

コンパイル時に警告を受け取らないようにこのコードを変更する方法はありますか? また、メインの x の値を取得するためにアクセスしようとしているメモリが、演算子関数呼び出しの最後に割り当て解除されるため、このコードはセグメンテーション違反を引き起こす可能性はありませんか?