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語言進...