通過指標的指標,以及乙個指標陣列,對實際陣列元素進行排序,有乙個優點,就是排序過程交換的只有指標陣列中的值,而不是實際的陣列的元素.當實際元素中的物件很大,特別是結構體等型別時,這樣做是很有好處.
下面的圖表示了排序前和排序後,記憶體中的變化情況:
以下**是上圖的實現:
1 #include 2output:3#define size 545
//這裡用氣泡排序.
6void
7 bubblesort(int **parr)
20 } //
for(j).
21if(!isswap) break; //
表示排好序.22}
23}2425
//列印陣列實際元素.
26void
27 show(int **p)
3233
int34 main(void
) ; //
實際陣列.
36int *parr[size] ; //
指標陣列,每個元素與實際陣列中一一對應.
37int **p = parr; //
指向指標陣列的首位址的指標.
3839
for (int i = 0; i < size; i++)
40 parr[i] = &a[i]; //
對指標陣列的元素逐一賦值.
4142 printf("
before sorting:\n");
43show(p);
44bubblesort(p);
45 printf("
after sorting:\n");
46show(p);
47 }
before sorting:74819after sorting:14789
通過索引或指針對陣列元素進行訪問
指向陣列元素的指標可以用來訪問特定索引位置的陣列元素,並且指向陣列元素的指標的算術運算和陣列索引的算術運算兩者之間具有相同的語義。下表展示了訪問陣列a 元素型別為t 時抵達常見操作。通過索引或指針對陣列a 元素型別為t 進行訪問的 基於索引的 基於指標的 int i t p i 0 p a 或p a...
對陣列指標的理解
整型陣列 int a 5 整型指標int p 可以存放其元素位址來進行指標訪問 字串陣列char str 5 10 該怎麼通過指標訪問其中的字串元素?字串是個陣列,所以要用陣列指標 p 即指向乙個什麼型別的陣列的指標 這是乙個寬度為10的字元陣列 所以需要 乙個寬度10的字元陣列的指標。即char ...
對陣列進行排序
函式名稱 排序依據 陣列索引鍵保持 排序的順序 相關函式 array multisort 值鍵值關聯的保持,數字型別的不保持 第乙個陣列或者由選項指定 array walk asort 值是 由低到高 arsort arsort 值是 由高到低 asort krsort 鍵是 由高到低 ksort ...