私は質問の積み重ねを見て、これを見ることができませんでしたが、私はそれがどこかに既にあると確信しています。だから私は謝罪し、これは閉鎖されるかもしれないと思うが、うまくいけば、誰かが私の答えを最初に確認するだろう!C++定義されていない動作かどうか? (もう一度)
は、私はそれを考えに修正アム:
while (--len > -1 && ptr = str[len])
は明確に定義されている動作(未定義ではありませんか!)?私がこれを理解する方法は、& &がシーケンスポイントであり、短絡が働く方法は、最初に--len > -1
を評価し、安全でない場合には2番目の部分が起こらないようにすることです。
私はこの思考プロセスで正しいかどうかはわかりませんでした。
このステートメントの前にlenの値があるかどうかによって異なります。 0以上の場合はどうなりますか? ptr = str [len]が評価されます。 – Sid
ええ、良い点。私の状況では危険ではありませんが、最初は悪いとは考えていませんでした。 :) –