陣列作為函式引數

2021-10-05 03:22:13 字數 773 閱讀 4775

做題遇到乙個陣列傳參,發現了一些小問題。

1.對於陣列長度來說,用sizeof(陣列名)求出來的並不是陣列的大小,確切的說,不是我要的大小,他是求出了陣列所佔空間的大小。

int a[5] = ;

int n = sizeof(a);

這樣算出來的n不是想象中的陣列長度5,我得出的結果是20,因為乙個元素佔4個位元組,5個元素一共佔了20個位元組,

所以,要想求出陣列長度,再除以任意乙個陣列元素的位元組數就好了

int n = sizeof(a)/sizeof(a[0]);

像這樣,求出來的就是陣列長度5了。

2.對於陣列傳參,題目要求刪除陣列元素,也就是最後要輸出的時候陣列內有效值個數是發生了變化的,但是定義了乙個bool型函式,那麼怎麼傳回陣列變化的值是乙個問題,我最後想到了用c++的引用來傳遞這個引數。

#include#includeusing namespace std;

//刪除陣列中處於x,y中間的數,包含x, y ,x= y || n == 0) return false;

for (i = 0; i < n; i++)

n = n - k;

return true;

}int main();

int n = sizeof(a)/sizeof(*a);

del_st(a, n, 3, 5);

for (int i = 0; i < n; i++)

return 0;

}

此處用到了引用傳參。

陣列作為函式引數

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

陣列作為函式引數

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

陣列作為函式引數

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