問題タブ [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.
c - while ループでのポスト インクリメント
次のコードは私を少し混乱させました:
これは、関数の簡素化された実装ですstrcpy
。このコードから、ポインターp
がq
インクリメントされてから逆参照され、 char に到達するまでq
割り当てられることがわかります。p
\0
while ループの最初の繰り返しについて誰かに説明してもらいたいです。
post-increment - forループでの++iとi++の違い
接尾辞と接頭辞の増分/減分がどのように機能するかをよく理解しています。しかし、私の質問は、forループで、どちらがより効率的またはより高速で、どちらがより一般的に使用されているのか、そしてその理由は何ですか?
プレフィックス?
または接尾辞?
c - このプログラムの出力。混乱しましたか?
だから私はこの質問で立ち往生しています。
私によると、「a」は20である必要があります。a= 6 + 6 + 8-8しかし、実行時に答えは18であることがわかりました。何が間違っているのでしょうか。ステップバイステップの説明が役立ちます。
c++ - イテレータでのC++ポストインクリメント演算子のオーバーロード(-Wall -Werrorでコンパイル)
私は現在、bツリー用に独自のイテレーターを作成していますが、コンパイラーが文句を言わずにポストインクリメント演算子を実装する方法に固執しています。
エラーメッセージは次のとおりであり、予想されます(エラーメッセージの内容を正確に実行しているため)
-Wallタグと-Werrorタグを使用して関数を作成する必要があるため、誰かがその解決策を手伝ってくれることを願っています。
関数は次のとおりです。
周りを見回してみたところ、今の自分の姿を正確に実装している人の例しか見つかりませんでした。
以前にこのような問題が発生したときはいつでも、返されるオブジェクトを「新しい」ものにして、一時的なものではなくなった。ただし、これはイテレータであるため、これを実行すると、後でメモリを解放できなくなり、メモリリークが発生します。
誰かが私を助けることができれば、それは大いにありがたいです!問題を理解するのに役立つ私のデザインについて他に何かあれば教えてください。
よろしく。
java - 「x = x++」の後の x は何ですか?
これが実行されると、(カーテンの後ろで) 何が起こりますか?
つまり、変数がポストインクリメントされ、1 つのステートメントでそれ自体に割り当てられる場合はどうなるでしょうか? これをコンパイルして実行しました。ステートメント全体の後でx
も 7 のままです。私の本では、それはインクリメントされていると言っています!x
c++ - C++ での演算子オーバーロードのポスト インクリメント
これはポストインクリメント演算子のオーバーロード宣言です。
私のクラスコンストラクター
メイン関数では、以下のようにコーディングしました
これをコンパイルしているときに、以下のエラーが発生します
opover.cpp:56:5: エラー: 'loc loc::operator++(int)' のプロトタイプがクラス 'loc' のいずれとも一致しません opover.cpp:49:5: エラー: 候補は: loc loc::operator++( ) opover.cpp: 関数 'int main()' 内: opover.cpp:69:4: エラー: 接尾辞 '++' に対して 'operator++(int)' が宣言されていません</p>
java - a =(a ++)*(a ++)はJavaで奇妙な結果をもたらします
私はOCPJP試験の勉強をしているので、Javaの少し奇妙な詳細をすべて理解する必要があります。これには、インクリメント前およびインクリメント後の演算子が変数に適用される順序が含まれます。次のコードは私に奇妙な結果を与えています:
答えは11ではないですか?または多分13?しかし、12ではありません!
ファローアップ:
次のコードの結果は何ですか?
javascript - インクリメント演算子は NaN を返します
++
演算子を使用して変数をインクリメントしようとしていますがNaN
、結果として取得し続けており、その理由がわかりません。これが私のコードです:
c - ++ はポインターの += 1 と同じですか?
私の古い C コードをリファクタリングしたいのですが、動作を変更せずに、すべてptr++
をポインターのptr += 1
ある場所に置き換えることができるかどうかに興味がありました。ptr
K&R セクション 5.3 から、私が意味することの例を次に示します。
を に置き換えるs++
とs += 1
同じ結果が得られますが、これがすべてのタイプに当てはまるかどうかは疑問です。sのテストも行いましたint
:
int_array++;
行をに置き換えるとint_array += 1;
、同じ結果が得られます。
これについてもう少し考えてみると、値を式で使用すると問題が発生する可能性があることに気付きました。次のようにインクリメントを別の行に移動した方が安全でしょうか。
次のようになります。
結論
問題になる可能性があると思っていたのは、さまざまなタイプのポインターをインクリメントすることですが、問題ではありません。理由については、@bdonlan の応答を参照してください。
x++
これは、すべてを置き換えx += 1
て同じ動作を期待できるという意味ではありません。ただし、これらは同等であるため++x
、安全に置き換えることができます。(x += 1)
c# - Pre- & Post Increment in C#
I am a little confused about how the C# compiler handles pre- and post increments and decrements.
When I code the following:
x
will have the value 10 afterwards. I think this is because the pre-increment sets x
to 5
, which makes it 5+5
which evaluates to 10
. Then the post-increment will update x
to 6
, but this value will not be used because then 10
will be assigned to x
.
But when I code:
then x
will be 2
afterwards. Can anyone explain why this is the case?