C語言陣列問題

時間 2022-08-09 02:35:10

1樓:匿名使用者

二維陣列儲存的形式你應該知道吧,上面那個儲存成a[0] 2 4

a[1] 6 7

a[2] 1 3

a[3] 5 9

a本身是陣列的首地址,a+1中1是偏移量。在這個二維陣列裡,每行有兩個數,偏移量就自動成了8(每個int佔4個位元組,兩個就是8個),這是c語言的一種處理。

*a表示取a的地址裡的值,這個值還是地址,就是a[0]這一行的首地址,其實也就是a這個陣列的地址,所以你看到a和a[0]的值是一樣的。二維陣列可以理解成多個一維陣列的組合,在a[0]這個一維陣列中,偏移量是4,就是一個int,所以*p+1的值在a[0]的基礎上加了4.。

前面懂了,最後那個也不難了。星號(取值運算子)的優先順序高於加號,括號更高,所以先算a+2,然後取值,這個東西算完就成第三行的地址了,也就是a[2],然後a[2]+1,就是a[2][1]的地址,然後再取值,就是a[2][1],也就是3

2樓:

二維陣列a本質上是一個int**指標啊。*a就相當於一維陣列a。

c語言指標與陣列問題,c語言陣列與指標相關問題,謝謝

這個問題關鍵在於理解指標為什麼要有型別。其實不同型別的指標本質上都是一樣的,即記憶體地址,地址本身是沒有型別的,賦予指標型別的意義在於給出儲存資料的位元組寬度,也稱資料對齊寬度。比如 int pt,pt是一個整數指標,那麼編譯器便知道如果通過pt讀取資料時需要一次讀取4位元組,因為那裡存放著一個in...

c語言陣列賦值問題,c語言中如何給陣列定義並賦初值?

靈凍冰晶霜月 我不清楚你想問什麼,不過第二種寫法是對的。char chars 11 是定義了一個初始值為空總數為11的字元陣列。char s c language 定義一個總數為11的字元陣列,但是有初值。注意是11個不是10個,用這種方定義的字元陣列末尾會加一個 0。陣列的賦值通常是使用花括號來表...

C語言陣列的問題

小海鬼 在c語言裡有字元陣列的說法,我想問的是那有沒有字串陣列這個說法呢?答 c語言因為沒有字串型別 c 裡有 所以c語言處理字串的時候,需要把字串中的字元存到一個陣列裡頭,藉助陣列這個工具來對字串進行一系列的處理。那麼怎末標識一個字串呢,記住,字串必須是以空字元結尾的。空字元是 0 有的時候也可以...