這個C程式輸出的i值為什麼是5不是

2022-12-06 03:51:09 字數 891 閱讀 9514

1樓:倒黴熊

c語言中的陣列的下標從0開始的,像你定義的o[8]的下標是 0-7 ,

不會到8的。

所以第一個元素的下標是0,第二個是1,以此類推

2樓:匿名使用者

#include

void main()

;for(i=1;i<=8;i++)///因為i是從1開始的,迴圈的開始是從0[1]開始的,當o[i]==6是正好迴圈了5次就到了所以i=5}

3樓:匿名使用者

因為 條件 是 = 6 只要 = 6 就滿足條件 後面的語句就不執行了。

4樓:

因為陣列o[8]是從o[0]開始到o[7]的,不是從o[1]開始的,懂了嗎?

5樓:匿名使用者

對,樓上說的都對。

對於c來說,從語言發展來看,就把下標值定義成0了,這樣定義是有好處的對於編譯器來說,處理更簡單。希望對你有幫助。

6樓:匿名使用者

因為c中,陣列儲存是從下標0開始的,也就是說,o[0]=1,o[1]=2,o[2]=3.....o[4]=5,o[5]=6;

所以i=5

7樓:匿名使用者

c語言陣列下標是從0開始的,即o[0]=1,o[1]=2,o[2]=3,o[3]=4,o[4]=5,o[5]=6,o[6]=7,o[7]=8,毫無疑問,i輸出值為5

8樓:

你列印的應該是6,i=5

因為o陣列的索引是以0為第一個下標

o[0]=1;

o[1]=2;

o[2]=3;

o[3]=4;

o[4]=5;……

簡單的C 程式,幫幫小弟看下為什麼這個輸出會有兩個解構函式但是卻只有建構函式

因為b c b 呼叫的是帶參的拷貝建構函式,引數是該類的一個引用,原型類似b const b b 若沒有,預設系統會自動生成一個,行為是對資料成員直接賦值操作,這樣是為什麼對於有指標成員的類必須自己寫拷貝建構函式,因為直接賦值指標會造成操作錯誤。因為 b c b 這一句呼叫的是預設的複製建構函式,是...

這個程式中輸出八進位制的 1,結果為什麼是

計算機中一個正數的負數是其補碼 1。這樣做的原因是可以保證1個正數跟其負數相加永遠為0 例如,1是0x00000001 0x是16進位制,假設1個int有四個位元組長度 其負數 1則表示為0xfffffff1。可以很容易驗證兩者相加為0 把0xfffffff1表示為8進製表示則為3777777777...

c語言,c的值為什麼不是,c語言,c的值為什麼不是

c a a a b,b 4 這句反彙編後的內容如下,下面是分析,望採納 0040103d mov eax,dword ptr ebp 4 可見ebp 4的地方儲存a的值,這條指令將 a 的值放到暫存器eax中 00401040 add eax,1 eax值加1,也就是a a 1 00401043 m...