陣列作為函式引數

2021-10-05 15:10:49 字數 603 閱讀 4425

這裡用氣泡排序舉例

#include

#include

void

bubble_sort

(int arr,

int sz)}}

}int

main()

;int sz =

sizeof

(arr)

/sizeof

(arr[0]

);bubble_sort

(arr, sz)

;for

(int i =

0; i < sz; i++

)system

("pause");

return0;

}

陣列的陣列名代表陣列的首位址(1.sizeof(陣列名),計算整個陣列的大小,sizeof內部單獨放乙個陣列名,陣列名表示整個陣列2.&陣列名,取出的是陣列的位址。&陣列名,陣列名表示整個陣列)。

當陣列傳參的時候,實際上只是把陣列的首元素的位址傳遞過去了。

所以即使在函式引數部分寫成陣列的形式: int arr 表示的依然是乙個指標: int *arr 。那麼,函式內部的 sizeof(arr) 結果是4。

陣列作為函式引數

一 一維陣列名作函式引數 用陣列名作函式引數,應該在主調函式和被調函式分別定義陣列,例如 void main 在被呼叫函式中宣告了形引數組的大小為10,但在實際中,指定其大小是不起任何作用的,因為c語言編譯對形引數組大小不做檢查,只將實參陣列的首元素位址傳給形引數組。形引數組可以不指定大小,在定義陣...

陣列作為函式引數

陣列元素的作用與變數相當,一般來說,凡是變數可以出現的地方,都可以用陣列元素代替。陣列名也可以做實參和形參,傳遞的是陣列第乙個元素的位址。陣列元素可以用作函式實參,但是不能用作形參,因為形參是在函式被呼叫時臨時分配儲存單元的,不可能為乙個陣列元素單獨分配儲存單元 陣列是乙個整體,在記憶體中佔連續的一...

陣列作為函式引數

做題遇到乙個陣列傳參,發現了一些小問題。1.對於陣列長度來說,用sizeof 陣列名 求出來的並不是陣列的大小,確切的說,不是我要的大小,他是求出了陣列所佔空間的大小。int a 5 int n sizeof a 這樣算出來的n不是想象中的陣列長度5,我得出的結果是20,因為乙個元素佔4個位元組,5...