陣列作為函式引數

2021-10-01 10:22:35 字數 608 閱讀 4298

陣列元素的作用與變數相當,一般來說,凡是變數可以出現的地方,都可以用陣列元素代替。

陣列名也可以做實參和形參,傳遞的是陣列第乙個元素的位址。

陣列元素可以用作函式實參,但是不能用作形參,因為形參是在函式被呼叫時臨時分配儲存單元的,不可能為乙個陣列元素單獨分配儲存單元(陣列是乙個整體,在記憶體中佔連續的一段儲存單元)。

函式的實參傳遞到形參有兩種方式:值傳遞和位址傳遞。

c 語言的函式至多有乙個返回值。

函式的呼叫:

呼叫結束,形參單元被釋放。注意:實參單元仍保留並維持原值,沒有改變,如果在執行乙個被呼叫函式時,形參的值發生改變,不會改變主調函式的實參的值。例如:若在執行max函式過程中x和y的值變為10和15,但a,b仍未2和3。因為實參和形參時兩個不同的儲存單元。

資料傳遞的方向是從實參傳到形參,單向傳遞。

用陣列名做函式引數,應該在主調函式和被調函式分別定義陣列,分別在其所在函式中定義。

用陣列元素做實參時,向形參變數傳遞的是陣列元素的值,而用陣列名做函式實參時,向形參(陣列名或指標變數)傳遞的是陣列首元素的位址。

用陣列名做函式實參時,不是吧陣列元素的值傳遞給形參,而是把是引數組的首元素的位址傳遞給形引數組,這樣兩個陣列就共佔同一段記憶體單元。

陣列作為函式引數

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

陣列作為函式引數

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

陣列作為函式引數

這裡用氣泡排序舉例 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 r...