在c++中陣列不是按值傳遞的,傳遞的是第1個元素,即第0個元素的指標。
1、陣列長度不是引數型別的一部分,函式不知道傳遞給它的陣列的實際長度,因此當編譯器對實參型別進行引數型別檢查時,並不檢查陣列的長度。等價於陣列的長度與引數宣告無關,以下三個宣告是等價的:
1),void func(int *);
2),void func(int );
3),void func(int[10]);
2、有時,在向函式傳遞實參時需要知道長度,例如c風格字串是字元的陣列,它用乙個空字元編碼作為結尾。提供的機制是提供乙個含有陣列長度的額外引數。
void func(int ,int size);
3、當引數是乙個陣列型別的引用時,陣列長度成為引數和實參型別的一部分,編譯器檢查陣列實參的長度與在函式引數型別中指定的長度是否匹配。
void func(int (&a)[10]);//不能寫為&a[10],因為下標操作符的優先順序高
int main(){
int j[2];
func(j);//錯誤:實參不是10個int
return 0;
C 引數陣列與陣列引數
1 陣列作為引數來傳遞時,當呼叫這個函式時裡面的引數需要new乙個陣列 2 引數陣列就是在函式的陣列引數前面加上params,當呼叫函式傳遞陣列時不需要再new乙個,只需要傳遞任意個跟陣列引數型別相同的數就可以 using system namespace 1 引數陣列 return sum sta...
C 引數陣列
引數陣列,通過關鍵字params定義引數陣列,paras型別引數主要用於在對陣列長度未知 可變 的情況下進行函式宣告,呼叫時可以傳入個數不同的實參,具備很好的靈活性。首先給出乙個具體的例子介紹引數陣列 params 的具體用法,首先定義乙個帶有引數陣列的方法 using system public ...
c 引數陣列
有時,當宣告乙個方法時,不能確定要傳遞給函式作為引數的引數數目,c 引數陣列解決了這個問題,引數陣列通常用於傳遞未知數量的引數給函式 params關鍵字 在使用陣列作為形參時,c 提供了params關鍵字,使呼叫陣列為形參的方法時,既可以傳遞陣列實參,也可以只傳遞一組陣列,params使用格式為 p...