引數傳遞二維陣列

2021-07-04 08:03:35 字數 806 閱讀 8416

[cpp]view plain

copy

void

func1(

intiarray[10])  

intmain()    

編譯通過,注意形參宣告一定要給出第二個維度的大小,要不編譯不過。

[cpp]view plain

copy

void

func2(

int(*parray)[10])  

void

func2_1(

int(*parray)) 

//編譯通過,無法呼叫

intmain()    

其實二維陣列名就是乙個指向一維陣列的指標,所以這種宣告方式ok。必須指定一維陣列的長度,如果沒有指定的話,函式宣告編譯通過。但是如果一旦有呼叫**,就有編譯不通過,因為沒有實參型別能匹配int.

[cpp]view plain

copy

void

func3(

int(&parray)[10][10])  

intmain()    

必須指定兩個維度的長度。

[cpp]view plain

copy

void

func4(

int(*parray)[10][10])  

intmain()    

必須指定兩個維度的長度。

以上方法都可以等價使用,對陣列來說,沒有值傳遞。

引數傳遞二維陣列

來看 c primer 中給出的方法 void func1 int iarray 10 int main 編譯通過,注意形參宣告一定要給出第二個維度的大小,要不編譯不過。void func2 int parray 10 void func2 1 int parray 編譯通過,無法呼叫 int ma...

引數傳遞二維陣列

來看 c primer 中給出的方法 cpp view plain copy void func1 intiarray 10 intmain 編譯通過,注意形參宣告一定要給出第二個維度的大小,要不編譯不過。cpp view plain copy void func2 int parray 10 vo...

二維陣列的引數傳遞

二維陣列的引數傳遞 一 通過指標傳遞 前幾天在看演算法導論的時候遇到了乙個函式需要傳遞乙個二維陣列,例如 void function int a 或許你會和我一樣,這樣定義個乙個陣列,int a 2 2 然後呼叫函式,但結果如何呢?首先是呼叫的 includeusing namespace std ...