

C言語や、それに文法が似ている言語では、
for(i=0; i<10; i++)...
のような例をよく見かけます。
ここで、何故か++iよりi++を使うほうを非常によく見かけるのですが、何故なんでしょうか?
単独で使う分にはどちらでも同じなので、実際はどうでもいいのですが。
個人的には、++iは副作用がまずあって、その副作用の結果を返すのに対し、i++は副作用があることは同じですが、「副作用を起こす前の値」を返す演算ということで、i++の方が少々不自然な感じがしますので、++iの方が好きなのですが。
もし、何か特別な理由があることを知ってらっしゃる方がいたらお願いいたします。
No.2
- 回答日時:
見やすいから, でしょうね.
理論上は ++i の方が速くなる可能性があるんですが.
回答ありがとうございます(^^)。
やはり、見やすさ、という方が多いですね。
速さに関しては、確かに機械語にはインクリメント命令があるわけだから++iは使い場所によっては非常にはやくなりますね。まあ、コンパイラの最適化でそれほど大きな差が出ないかもしれませんが。
とはいえ、共同でプログラムを作ったり、何度も「バージョンアップ」をしなければならないソフトの世界では、見やすさもはやさのうちかもしれませんね。
No.1
- 回答日時:
今回の例のようなケース(for ループの初期化)では、
++i
より
i++
のほうが、見やすいからです。i++ のほうが、変数 i が先に書かれているので、i をインクリメントするとわかりやすいですね。++i だと、++ の後の変数を見ないと、インクリメントする変数がわからないですね。
質問のところにかいてあるように、副作用の有無により、書き分けるケースもあります。
この回答への補足
見易さの意味では、後置の方がfor文では
for(i ~ ;i ~ ;i ~ )...
となって、整然としている、ということもあるかもしれませんね。
お礼が遅くなってすみません。
さっそくの回答、ありがとうございました。
確かに見やすさは大切ですね。
視線は先頭の文字を最初に見るわけですから、この回答は非常に役に立ちました。
何か、いろいろな話題が出てるようなので、締め切る前にいろいろ勉強しないといけなくなってしまいました(^^;;;。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラム言語FortranとCの違...
-
COM1(RS232C)とUSB仮想COMポー...
-
H8Sで割り込み発生時の飛び先ア...
-
XMLのテキスト情報をHTMLに読み...
-
64ビット化による処理速度低下...
-
任天堂64の64 CPUの仕...
-
(パイプライン処理)基本情報技...
-
【有効数字について】 授業で、...
-
身近なものをバイトであらわすと
-
ジークアクスのサイコガンダム...
-
MS-Wordで改行を検索・置換する...
-
Oracle AL32UTF8でのバイトサイ...
-
DVD-R 4.7GBって、何byte でし...
-
KBとMB
-
100BASE-Tでの転送速度について
-
EXCELでの16進数取り出し、上...
-
Stirlingについて
-
KBのMB違いって
-
1テラバイトに、CDが何枚はいる...
-
【暗号資産】Bitcashって仮想通...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語FortranとCの違...
-
arduino
-
CPU、Z80からステート数から...
-
組み込みCプログラムで実数型
-
パイプライン制御について
-
なぜ、i++なのか?(ものすごく...
-
PICマイコンのプログラムについ...
-
アセンブリ言語で。
-
G4 って Pentium でいうとどの...
-
CPUって
-
MIPS アセンブリ言語
-
64ビット化による処理速度低下...
-
マイコンのビット数とクロック数
-
関数と命令の違いについて
-
H8Sで割り込み発生時の飛び先ア...
-
VBSとVBA
-
+=と÷=の処理速度の謎を教え...
-
スマートフォンAndoroid の R...
-
任天堂64の64 CPUの仕...
-
CPUのHTについて教えてください。
おすすめ情報