←検索窓の楽しみ方
  ショッピングモール  掲示板ランキング


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.4127

ループによるインクリメントに関して
投稿者---toshi(2005/06/30 16:56:30)


unsigned int i;

for(i = 0; ; i++){
    ....
}

例えばunsigned intのサイズが1バイトだとして、上のループで
カウンタiの値は0 〜 255までループするとまた0に戻る、
というようなことを昔見たのですが、
これって普通に利用していいのでしょうか?
それともiがオーバーフロー、ということなのでしょうか?

初歩的なことかもしれませんが、ご教授願います。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ループによるインクリメントに関して 4129 tetrapod 2005/06/30 17:22:44


No.4129

Re:ループによるインクリメントに関して
投稿者---tetrapod(2005/06/30 17:22:44)


この例では unsigned int なので UINT_MAX に1が加えられると必ず0に戻ります。
決してオーバーフローは発生しない、正しいソースコードです。

(signed)int のオーバーフローが発生したら0に戻る保証はありませんけど。
未定義動作となります。



この投稿にコメントする

削除パスワード

No.4130

Re:ループによるインクリメントに関して
投稿者---toshi(2005/06/30 18:20:51)


tetrapodさん、返答ありがとうございます!
正しいコードなのですね、すっきりしました。


>この例では unsigned int なので UINT_MAX に1が加えられると必ず0に戻ります。

初めて知りました。今までの疑問が取れてよかったです。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity