寫一個冒泡排序的函數,代碼以下:數組
void bubble_sort(int arr[],int sz) { //肯定冒泡排序的函數 int i = 0; for ( i = 0; i < sz - 1; i++) { int flag = 1;//假設這一趟要排序的數值已經有序 //每一趟冒泡排序 int j = 0; for ( j = 0; j < sz - 1 -i; j++) { if (arr[j]>arr[j + 1]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; flag = 0;//本趟排序的數據其實不徹底有序 } } if (flag == 1) { break; } } } int main() { int arr[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; int i = 0; int sz = sizeof(arr) / sizeof(arr[0]); //對arr進行排序,排成升序 //arr是數組,咱們對數組arr進行傳參,實際上傳遞過去的是數組arr首元素的地址 &arr[0] bubble_sort(arr,sz);//冒泡排序函數 for ( i = 0; i < sz; i++) { printf("%d ", arr[i]); } return 0; }
其中要注意的是,arr是數組,咱們對數組arr進行傳參,實際上傳遞過去的是數組arr首元素的地址 &arr[0],若是想求數組的元素個數就要先在外面求好再傳參進去。ide
數組名數組首元素的地址。(有兩個例外)
1.sizeof(數組名) - 數組名錶示整個數組,sizeof(數組名)計算的是整個數組的大小,單位是字節。
2.&數組名,數組名錶明整個數組,&數組名,取出的是整個數組的地址。函數
總結:
要區分咱們傳的是首元素的地址仍是整個數組的地址,這兩個的意義是不同的。
2021.1.27
永遠相傻瓜計算機code