問題タブ [post-increment]

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 投票する
4 に答える
4037 参照

c++ - C++の接尾辞インクリメント演算子の実装

次の例をコンパイルしました。

cplusplus.com/referenceから、コンパイラの警告が表示されます。

ここで何が問題になっていますか?接尾辞の署名は、myiterator operator++(int)つまり値で返されることになっていますか?

STLイテレータで後置署名がどのように見えるかがどこかに定義されていますか?

0 投票する
13 に答える
135474 参照

c++ - ポストインクリメントとプリインクリメントのコンセプト?

接尾辞と接頭辞のインクリメントまたはデクリメントの概念がわかりません。誰かがより良い説明をすることができますか?

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

c++ - postfixインクリメントは戻り値ではなくインクリメントを実行しますか?

繰り返しますが、ばかげた質問です。

私は10を期待していましたが、このプログラムの結果として出力されます。最初に0に等しいeingで作成された一時オブジェクト、次にiがインクリメントされ、次に一時オブジェクトが返され、iに割り当てられます。ちょうどによると:

5.2.6インクリメントとデクリメント[expr.post.incr]1後置++を適用して得られる値は、演算子を適用する前にオペランドが持っていた値です。[注:取得された値は元の値のコピーです]

MSVC2008とGCCで確認しました。少なくともgccはインクリメント文字列で警告を発行しますが、どちらも同じ結果になります。私はどこが間違っていますか?

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

c - シーケンス ポイントに関するポスト インクリメント

ポストインクリメント演算子がインクリメントに影響を与えるのはいつですか? 私は2つの意見に出くわしました:

1) http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_015.htmから:

POST は、代入操作の後に操作を実行することを意味します。

2)家に近づくと、SO(C ++ではありますが)に関する回答は次のように述べています。

...式の終わり(次のシーケンスポイント)までインクリメントを遅らせます。

ポストインクリメント操作もそうです...

A) シーケンスポイントに到達するまで待つか、

B) 代入演算子をポストするか、

C) シーケンス ポイントの前に発生しますか?

0 投票する
8 に答える
1311 参照

c++ - 演算子の優先順位..()および++

敬礼..

異常な問題があります。 このMSDNライブラリの表では、 ()の優先順位が++(プリインクリメント)よりも高いことがわかります。しかし、このコードを実行すると、++(prefex)の優先順位が高くなっているようです。

答えは:

x = 6

これはprefex++でのみ発生し、post-incrementで期待どおりに機能します。

何か理由はありますか?よろしく..

x = 4

(私はMicrosoft Visual C ++ 2010 Expressを使用しています)

0 投票する
4 に答える
448 参照

c - 前または後のインクリメント演算子を使用しない a[j++] = ++i の同等の式

だから私はこの質問を熟考しています(これは宿題/試験の復習の問題です):

a[j++] = ++i;前後のインクリメント演算子を使用しない場合の同等の式を書き留めます。そのような表現が提供できない場合は、その理由を説明してください。

私は次のことを思いつくことができました:

a[j] = i+=1;
j+=1;

a[] 内で j をポストインクリメントとしてインクリメントする方法は考えられません。後で使用する以外j+=1;に、そのような式を提供できないという答えにつながると思います (コードが 1 行ではなく 2 行であるため)。ポストインクリメント演算子なしではインクリメントをポストできないことを説明してください。

私は何かが欠けていますか、それとも正しいですか? 再確認したかっただけです。前もって感謝します。

編集: @James McNellis のおかげで、彼は使用する方法を提供しました a[(j+=1)-1] = (i+=1);

0 投票する
3 に答える
678 参照

c - 関数ポインタへのポインタを逆参照してポストインクリメントする場合、最初に何が起こりますか?

このコードを考えると:

関数呼び出しは増分の前または後に発生しますか?
すなわち:これは「FooFoo Foo ...」または「FooBar」を印刷しますか?

0 投票する
4 に答える
2360 参照

c++ - switchステートメントとインクリメント演算子

私は次のコードを書きました:

コードの出力は次のようになりました。

誰かが出力の最初の行を説明できますか?0と1の両方が印刷されるのはなぜですか?

0 投票する
7 に答える
17478 参照

c++ - C/C++ 後置インクリメント

バッファからバイトを読み取っています。しかし、時々私が読んでいるのは単語またはそれ以上です。

それは問題ありませんが、位置を 2 または 4 ずつポストインクリメントするにはどうすればよいですか? +=オペレーターにポストインクリメントをさせる方法はありませんよね?

理由は、評価したいこの大きなひどい式があり、同時に位置変数をインクリメントしているためです。

独自の解決策を思いついたと思います。私はそれがうまくいくと確信しています。ただし、これはあまり読みやすいコードではないため、誰もがそれを嫌うでしょう。

次に、これを少しテストして正しいことを確認した後、これをマクロにします。

結論は:

これをしないでください。これは保守不可能なコードを生成するようなものであるため、これは悪い考えです。しかし...前インクリメント演算子を後インクリメント演算子に変換するのは非常に簡単です。

0 投票する
11 に答える
98751 参照

java - Java:インクリメント/デクリメント演算子のプレフィックス/ポストフィックス?

以下またはここのプログラムからSystem.out.println(i)、値を出力するための最後の呼び出しはなぜ7ですか?