dポイントプレゼントキャンペーン実施中!

C言語や、それに文法が似ている言語では、
for(i=0; i<10; i++)...
のような例をよく見かけます。
ここで、何故か++iよりi++を使うほうを非常によく見かけるのですが、何故なんでしょうか?
単独で使う分にはどちらでも同じなので、実際はどうでもいいのですが。
個人的には、++iは副作用がまずあって、その副作用の結果を返すのに対し、i++は副作用があることは同じですが、「副作用を起こす前の値」を返す演算ということで、i++の方が少々不自然な感じがしますので、++iの方が好きなのですが。
もし、何か特別な理由があることを知ってらっしゃる方がいたらお願いいたします。

A 回答 (12件中11~12件)

見やすいから, でしょうね.


理論上は ++i の方が速くなる可能性があるんですが.
    • good
    • 0
この回答へのお礼

回答ありがとうございます(^^)。
やはり、見やすさ、という方が多いですね。

速さに関しては、確かに機械語にはインクリメント命令があるわけだから++iは使い場所によっては非常にはやくなりますね。まあ、コンパイラの最適化でそれほど大きな差が出ないかもしれませんが。

とはいえ、共同でプログラムを作ったり、何度も「バージョンアップ」をしなければならないソフトの世界では、見やすさもはやさのうちかもしれませんね。

お礼日時:2009/02/19 22:54

今回の例のようなケース(for ループの初期化)では、


++i
より
i++
のほうが、見やすいからです。i++ のほうが、変数 i が先に書かれているので、i をインクリメントするとわかりやすいですね。++i だと、++ の後の変数を見ないと、インクリメントする変数がわからないですね。

質問のところにかいてあるように、副作用の有無により、書き分けるケースもあります。

この回答への補足

見易さの意味では、後置の方がfor文では
for(i ~ ;i ~ ;i ~ )...
となって、整然としている、ということもあるかもしれませんね。

補足日時:2009/03/04 19:50
    • good
    • 0
この回答へのお礼

お礼が遅くなってすみません。
さっそくの回答、ありがとうございました。

確かに見やすさは大切ですね。
視線は先頭の文字を最初に見るわけですから、この回答は非常に役に立ちました。
何か、いろいろな話題が出てるようなので、締め切る前にいろいろ勉強しないといけなくなってしまいました(^^;;;。

お礼日時:2009/02/19 22:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!