C 函式引數傳遞 陣列形參

2021-06-28 12:30:18 字數 509 閱讀 3975

1、三種傳遞陣列的寫法

下面這三種寫法本質是一樣的:

void fun1(int *x, size_t size);

void fun2(int x, size_t size);

void fun3(int[10] x, size_t size);//這個10其實是沒用的,編譯器會忽略掉

2、形參的長度會引起誤解

3、陣列實參-陣列會悄悄地轉化為指標

4、通過引用傳遞陣列

void fun4(int (&x)[10]);//這個10不是沒用的,必須要寫。這樣寫只能傳10個陣列元素大小的陣列

5、多維陣列的傳遞

void fun5(int (*x)[10], int rowsize);//10是列數,rowsize是行數

6、c++標準庫常用的方法,傳兩個指標

void fun6(const int *beg, const int *end);

呼叫時:

fun6(arr,arr+arrsize);

函式引數傳遞 陣列形參

二 用兩個指標傳遞陣列 三 多維陣列的傳遞 陣列有兩個特殊的性質 1.陣列是不能複製的。2.陣列的名稱實際上是指向陣列第乙個元素的指標。因此,我們在向函式傳遞陣列 的時候就可以用傳遞指標的方法。有三種傳遞陣列的方法 如下 x指向陣列的第乙個元素 void printvalues int x,size...

C 函式引數傳遞 非引用形參

非引用形參 1 普通形參 非const普通形參 可以傳所有型別的普通實參 cosnt普通形參 可以傳所有型別的普通實參,但不能修改const普通形參的值 2 指標形參 非const指標形參 不能通過非const形參來修改const實參,因此只能傳非const指標實參 cosnt指標形參 可以 傳所有...

C 陣列作為形參傳遞給函式

以下三種形式等價 void function const int arg void function const int arg void function const int arg 10 這裡維度表示期望有10個,並不代表真實為10個以上三個函式等價於將陣列的頭指標const int 型別傳遞給...