• 締切済み

for文

C言語の本を読んでいて、for文の(i=0;i<count;--i)とあるのですが for(i=0;i<count;i--)とどう違うのでしょうか?それぞれコンパイルした のですが、同じように実行できましたので、余計にわからなくなりました。

みんなの回答

  • Werner
  • ベストアンサー率53% (395/735)
回答No.3

> for(i=0;i<count;i--) そういえばこのコードおかしくない? iは0から始まってどんどん小さくなるから countが1以上の時ループはずっと(オーバーフローでも起こらない限り)とまらないよ。 forブロック内でiやcountに代入してるとかbreak文があるなら別だけど。

koha415
質問者

お礼

書き方が間違っていました、本の内容を一部抜き出して書いたもので お手数をかけました。

  • luckymako
  • ベストアンサー率55% (29/52)
回答No.2

for文で質問と全く同じ様に書くのであれば 結果は同じになります。 仮に for(i = 0; i-- < count; ) と for(i = 0; --i < count; ) の様な書き方に変更すると結果が異なるはずです。 これは以下のことによります。 ・C(C++,Javaなんかも)では式も(が)値を持つ。 ・--は1を引く演算子で、i--も--iも1を引くことをあらわす式である。 ・i--という式は1引かれる前の値を持ち、--iは1引かれた後の値を持つ。 例 int i = 10; int j = 10; int a = --i; int b = j--; とすると各変数の値は i = 9 j = 9 a = 9 b = 10 となります。

koha415
質問者

お礼

ありがとうございます、丁寧な回答、たすかりました。

  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

そのコードでは前置と後置の違いはありません。同じです。

koha415
質問者

お礼

ありがとうございます、ネットで調べたのですが 同じような質問がなくて助かりました。

関連するQ&A