排序熱身及陣列做函式引數退化為指標引申

2021-06-22 07:04:58 字數 586 閱讀 4882

先說排序比較常用的是氣泡排序  先介紹個簡單的

氣泡排序的原理就是先獲取到每個陣列的元素 然後迴圈的和自己下乙個去比較 判斷是否大於還是小於 之後做下替換

例: int number[5] = ;//先定義乙個陣列

//進行排序

for (int  i = 0; i < 5; i++)}}

他先拿著第乙個數字和下面乙個去比較  第一輪比較下來之後那麼number[0]其實就是你要的最大值 或者最小值既然第乙個已經符合了我們要求那麼可以先不去考慮第乙個直接獲取第二個和下面乙個去比較  他就是找到 接下來資料中最大的值 這樣乙個個的排序就達到了目的 

他的優缺點:比較 簡單  空間複雜度比較低 穩定  缺點:時間複雜度太高 效率不好 

ok 接下來說下陣列   很多人都知道 陣列其實就是乙個常量

但是我想說的是 當陣列傳值給函式的時候他就變成了乙個指標

我定義個 函式 

//排序

void sortarray(int *p)}}

}然後把陣列傳遞進去 他就自動變成了指標

如果是二維陣列傳遞的話 型別就應該寫為 int (*number)[5]  代表的是二維陣列指標

陣列排序及陣列做函式引數將會退化為指標

陣列排序 1.選擇排序思想 2.選擇排序初級 include include int main int a 10 int k 0 int j 0,i 0,temp 0 printf 排序前 n 排序前列印輸出 for k 0 k 10 k printf d a k printf n for i 0 ...

陣列做函式引數的退化問題

include includevoid arraysort int a,int num void arraysort int a,int num void print array int a,int num int main int i 0 int num sizeof a sizeof a 0 n...

多維陣列做函式引數的退化

退化過程 void printarray01 int a 3 5 4k void printarray02 int a 5 5k void printarray03 int myarray 5 這就是陣列指標 6k 多維陣列做函式引數為什麼會存在退化?為什麼編譯器要設計成這個樣子 如何證明二維陣列在...