- 締切済み
for文
C言語の本を読んでいて、for文の(i=0;i<count;--i)とあるのですが for(i=0;i<count;i--)とどう違うのでしょうか?それぞれコンパイルした のですが、同じように実行できましたので、余計にわからなくなりました。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Werner
- ベストアンサー率53% (395/735)
回答No.3
> for(i=0;i<count;i--) そういえばこのコードおかしくない? iは0から始まってどんどん小さくなるから countが1以上の時ループはずっと(オーバーフローでも起こらない限り)とまらないよ。 forブロック内でiやcountに代入してるとかbreak文があるなら別だけど。
- 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 となります。
質問者
お礼
ありがとうございます、丁寧な回答、たすかりました。
- Werner
- ベストアンサー率53% (395/735)
回答No.1
そのコードでは前置と後置の違いはありません。同じです。
質問者
お礼
ありがとうございます、ネットで調べたのですが 同じような質問がなくて助かりました。
お礼
書き方が間違っていました、本の内容を一部抜き出して書いたもので お手数をかけました。