陣列可想成是相同資料型態的一組集合,每個集合中的元素都會有一個索引值,透過 [ ]
陣列存取運算子,我們便能取得陣列中的元素。
2.C語言中實做一個陣列
當編譯器遇到了一個 Element_type array[SIZE] 的宣告,它會分配 SIZE 個連續記憶體給這個陣列,其中每份記憶體都足以儲存Element_type的大小。
也由於分配出的記憶體是連續的,我們能瞭解每一個元素的記憶體位置。對於第i個元素,他的位置是:
array + (i-1)*sizeof(Element_type)
還記得嗎,c的陣列是從0開始的,所以必須先執行 (i-1)。要特別注意,當i=0的時候,就是陣列本身,也是第0個元素儲存的位置,所以我們能夠這麼說:
array = &array[0]
有了每個元素的位置,利用 * 運算子就能夠依照位置取得元素的值了,若要取得第i個元素(從0開始)的值:
array[i] = *(array + i);
上述兩種取值方法是等價的。
值得一提的是,在C語言中,我們不必對i*sizeof(Element_type)進行處理。
值得一提的是,在C語言中,我們不必對i*sizeof(Element_type)進行處理。
沒有留言:
張貼留言