[C]困難サイクルの符号なしの短い基本言語

私は惑星の私の知識にあった:第一章の「C言語教室の疑問は」疑問提起:[最初の1] [Cプログラミング言語] [難しいサイクルのunsigned short型]を
Cの詳細を参照するには言語の難しさや学生の質問、私はそれに参加するために、地球の二次元コードのテキストを掃引手紙のマイクロ終わりを解決する必要があります!

まず、[問題]

学生は、今日の道路C言語より興味深い質問は、Cプログラムのコードを以下に示します。

ループのために私はパラ増分1聞かせて、変数パラ1の初期値を与えたが、サイクルの終わりのための条件が指定されていません。あなたは何かが間違っていると思いますか?それは無限のサイクルになりますか?ご質問がある場合はどのようにそれを修正するつもりですか?

第二に、[疑問]

このループは永遠に終了し、ループしませんでしょう。

私のPC上で、私ははsizeof「符号なしshort」型の変数は、2つのバイトによって占有されて得られた使用するので、範囲は「0〜65535。」この手順Cにおいては、符号なしの短い変数の初期値であれば、ループが実行されたであろうことは、0ではないように、パラ1です。

各実行した後、printf関数の後、変数はパラ1、65535までのパラ増分、この時間変数パラ1をインクリメントしますプラスあなたはそれが65536になるだろうとは思いません!この時点で、変数パラオーバーフローを知っている必要があり、バック最小ポイント値の範囲:0。

可変パラ0、その後のサイクルのための時間は終わった、それはprintf関数の出力にプログラムの1〜65535の端を言うことです!

カードを追加する三、「C言語教室疑問」プラネット

マイクロチャネルのスイープに参加するには、このリンクをクリックしてください!

 

おすすめ

転載: www.iteye.com/blog/kelehaier-2443679