質問 |
||
| 質問者:koha415 | for文 | |
|---|---|---|
困り度:
|
C言語の本を読んでいて、for文の(i=0;i<count;--i)とあるのですが for(i=0;i<count;i--)とどう違うのでしょうか?それぞれコンパイルした のですが、同じように実行できましたので、余計にわからなくなりました。 |
|
質問投稿日時:08/03/21 00:12 質問番号:3880856 |
||
回答 |
|
| 回答者:Werner | > for(i=0;i<count;i--) そういえばこのコードおかしくない? iは0から始まってどんどん小さくなるから countが1以上の時ループはずっと(オーバーフローでも起こらない限り)とまらないよ。 forブロック内でiやcountに代入してるとかbreak文があるなら別だけど。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/21 00:46 回答番号:No.3 |
|
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | 書き方が間違っていました、本の内容を一部抜き出して書いたもので お手数をかけました。 |
回答 |
|
| 回答者:luckymako | 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 となります。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/21 00:45 回答番号:No.2 |
|
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | ありがとうございます、丁寧な回答、たすかりました。 |
回答 |
|
| 回答者:Werner | そのコードでは前置と後置の違いはありません。同じです。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/21 00:32 回答番号:No.1 |
|
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | ありがとうございます、ネットで調べたのですが 同じような質問がなくて助かりました。 |