C語言程式中,陣列中有個值發生了奇怪的變化

2025-01-27 07:05:25 字數 1336 閱讀 9646

1樓:給我範依然

整個程式是從高位址向低位址,,但是陣列內部是從低位址向高位址,所以c溢位之後,位址只想了b[0],(為什麼寫了c[5]沒報錯?)

c語言。陣列的一點問題

2樓:糖二灰

答案是d

a陣列中儲存的是'a','b','c','d','e','f','\0'

比b陣列要多乙個字串結束符'\0'

所以a,b,c選項全錯。

c語言求助 關於陣列 請講明原因

3樓:定其齋又

第一題,由於if裡都汪櫻是以「或」連線的,就是說只要滿足困局叢其中乙個便認為是真,執行s+=a[i][j]。實際上就是把4*4陣列的最外面一圈相加(第1行+第1列+第4行+第4列),結果為66

第二題,關鍵是for(k=0;s[k];k++)的理解,由於s是乙個臘緩字元陣列,最後一位是結束符號'\0',所以在結束符號之前都回執行for迴圈,然後實在裡面進行相應的計算,你應該明白了吧。

4樓:赫幻巧傅尋

第一體。s=0

當。i=0時。

有下列結果滿足要求。

a[o][0]=1

a[o][1]=2

a[o][2] =3

a[o][3]=4

疊加後。s=10

同理可得 i=3時。

a[3][0]=7

a[3][1]=8

a[3][2] =9

a[3][3]=10

疊加後有s=44

j=0時枯神。

a[0][0]=1(重複雀掘不加)

a[1][0]=3

a[2][0]=5

a[3][0]=7(重複不加)

s=52j=3時。

a[0][3]=4重複不加)

a[1][3]=6

a[2][3]=8

a[3][3]=10復不加)

s=66應該能理解吧 !s+=a[i[j]表示疊加。第二題。k=0時。

s[0]=2

執行case2

v1=1 v2=1

v3=1 因為沒有break

語句結束。k=1時。

s[1]=3

case3v2=2k=2時。

s[2]=4 case4

v3=2 v2=3

這樣分析下去。

得到結果不難吧。

我這裡就不機頃敗核械下去了。

c語言中得邏輯是很強。

但要弄懂也不是不可能。

關鍵在於自己!像這樣得迴圈題。

自己要好好看看!

c語言陣列中a為什麼和a,c語言陣列中a為什麼和a0相等

因為陣列的首地址也就是陣列名,你的陣列名為a,則 意思是取內容,a就是 a地址的內容 a地址又因為是首地址和a 0 一樣,所以可以說 a a 0 望樓主採納 首先a是一個地址,來它指自向的是陣列的首地址。a可以運算元組中的所有元素。舉個例子,假如b 5 指標a指向b陣列,a就是b 0 也就是5 的地...

C語言程式,一個C語言程式

include define n 2010 int head n way n du n rudu n n,f n len,fa n struct recda 2000000 inline void add int a,int b,int c void search int a bool read i...

求解c語言程式,求解一個c語言程式

include include int main 不太清楚,不過,我執行是 43 i 0時,s 0 52 48 4,i i 2 2 i 2時,s 10 4 51 48 43,i i 2 4 i 4時,不滿足迴圈條件,跳出迴圈執行下一句printf d n s 輸出43 算的不對,第一,i 0,s 1...