c語言中for i 1 i i為什麼不是死迴圈

時間 2021-09-12 11:21:53

1樓:匿名使用者

int 型別,也有個最大值的,根據系統不同,這個值的大小也不一樣,但終歸是有最大值的,最大值再加1,就溢位了,也就變成了0。所以程式是能正常結束的。

這個程式如果執行的話,你可能等很久都不會結束,因為有輸出語句。你把語句關掉,程式應該會在1分鐘內結束(根據系統的不同)。此時i的值為0

#include

main()

我在linux裡實測用了大概9秒。

2樓:

i++ 到了  int_max 即 2147483647 時,i+1 就是 -2147483648,然後繼續自增直到為 0 退出迴圈。

輸入其中一段內容:

3樓:匿名使用者

i最終必然會溢位,重新返回到0,結束迴圈

4樓:匿名使用者

這個跟資料儲存有關,在我的系統裡int是4個寬度的(你可以用sizeof函式檢視),所以我的int是4*8=32位的,最高位代表符號,所以代表的最大正數為2的31次方-1=2147483647,當k為2147483648的時候,我們可以輸出一下看一下,是-2147483648,按照這個趨勢可以看出在加1將會是-2147483647....當k=2147483647+2147483648的時候輸出的應該是-1,則當k=2147483647+2147483648+1=4294967296時k=0;再來執行會有溢位警告.看看結果

不出所料,希望可以幫到你

為什麼for(int i=0;i<9;i++) 在c語言中是錯誤的?

5樓:匿名使用者

標準抄c語言這樣

寫會出現語法錯誤的,如果使bai用t20,這樣寫肯定會出du錯,無zhi法編譯,正確的寫法是:在函dao數的開始申明變數,之後再使用變數,比如:

void fun()

後來很多整合開發環境,是支援for(int i=0;i<9;i++)這種寫法的,不過我的建議還是按照標準的較好,這樣在任何情況下都不會出錯。

c語言中的for迴圈 for(i=1;i<=100;i++)為什麼最後i的值是100而不是101?

6樓:小紅軍旭

迴圈到100停止,再執行i++語句。

是先執行for的前兩句,再執行下面的**,最後執行i++語句。

7樓:在九鯉湖讀莎士比亞的祝融

i<=100,在i為100時停止迴圈,而且最後的i++是在i迴圈完了以後才加的,所以i最後是100

8樓:未待春風

就是101呀,整個樓都是錯的,你應該問為啥是101,而不是100。。

9樓:匿名使用者

升級語句最後執行而非最先執行,所以是100

10樓:匿名使用者

看需求,決定是要到只個數。。。。。。。。。~

11樓:受傷的蓮子

for(表示式 1;表示式 2;表示式 3)語句它的執行過程如下:

(1)先求表示式 1.

(2)求表示式2,若其值為真(值為非0),則執行for語句中指定的內嵌語句,然後執行下面第三步 做若為

假(值為0),則結束迴圈,轉到第5步.

(3)求解表示式3

(4)轉回上面第(2)步驟繼續執行;

(5)結束迴圈,執行for語句下面的一個語句;

c語言中for迴圈語句 for(i=1;i<10;i++)這個一共執行幾次 我總是無法完全理解 求

12樓:匿名使用者

首先要知道for語句

的執行原理,這樣你就知道答案了:

現在以 for(i=1;i<10;i++)為例說明如下:

1.:執行到for語句時,讓i=1,但這隻執行一次。也就是說for語句中第一個分號前的語句只執行一次,就是相當於初始化

2.:判斷第二個分號前的**是否為真

如果為假則退出for語句,就不執行for語句的後面{}中的語句,當然也就不執行第二個分號後的**了

如果為真,則先執行for語句的後面{}中的語句,如果期間沒有跳出語句的**則執行第二個分號後的**,再跳回到2步進行判斷!

所以你的這個for迴圈如下執行

先 i=1

1次,此時i=1,滿足i<10 執行for語句內**,執行i++(i=2)

2次,此時i=2,滿足i<10 執行for語句內**,執行i++(i=3)

3次,此時i=3,滿足i<10 執行for語句內**,執行i++(i=4)

4次,此時i=4,滿足i<10 執行for語句內**,執行i++(i=5)

5次,此時i=5,滿足i<10 執行for語句內**,執行i++(i=6)

6次,此時i=6,滿足i<10 執行for語句內**,執行i++(i=7)

7次,此時i=7,滿足i<10 執行for語句內**,執行i++(i=8)

8次,此時i=8,滿足i<10 執行for語句內**,執行i++(i=9)

9次,此時i=9,滿足i<10 執行for語句內**,執行i++(i=10)

此時i=10,不滿足i<10 退出for語句,未執行i++(i=10)

13樓:無奈去遊戲

9次 i=1 小於10 進入迴圈 執行宣告 後i++i=2 一次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=3 2次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=4 3次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=5 4次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=6 5次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=7 6次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=8 7次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=9 8次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=10 9次完成,

大於10跳出迴圈

14樓:爭分奪秒

10次 9次判斷成功(for迴圈體中執行9次),1次判斷沒成功(for迴圈體中沒執行) 那麼 在計算機中執行了9+1判斷語句

15樓:匿名使用者

n+1次 0~n 你自己算算~

16樓:謎幻界祖

1 2 3 4 5 6 7 8 9 九次,加到10判斷退出,多看下書。

c語言中為什麼,c語言中為什麼 0177777要轉換成原碼真值是 1。0123就不用轉換,真值是

整數有正整數和負整數,為了表示負數,一般用最高位來表示符號,因此,最高位是不能用來表示數值的。所以,一個16位的整數最大值為 2 15 32767 10 7fff 16 0111 1111 1111 1111 2 括號後面是進位制。也就是除去最高位,用來儲存數值的位數是總位數 1,也就是15位。而用...

計算機c語言中1f什麼意思,c語言中 1f是什麼意思

把精確度比float資料小的資料型別轉換為float型別,以便於下面的運算 這是c語言中輸出格式控制語句。後面接上的內容是控制變數輸出格式的 f 表示 浮點數 6.1f 就是輸出的變數總共佔6列,其中小數佔一列。1f 你用了數字1,不是字母l的小寫.這個1的意思是輸出 入總位數為1位。參考 floa...

c語言中!10的值為0,為什麼,c語言中a 1 0 的值是什麼

ch陳先生 計算機記憶體儲存的時候認為規定了,只有0,沒有 0。c語言是一門程序導向的 抽象化的通用程式設計語言,廣泛應用於底層開發。c語言之所以命名為c,是因為c語言源自kenthompson發明的b語言,而b語言則源自bcpl語言。1967年,劍橋大學的martinrichards對cpl語言進...