二維陣列作為引數傳遞問題

2021-07-24 12:30:12 字數 944 閱讀 7620

int a[2][2]=, };

我定義了這樣乙個陣列,我想把這個陣列作為引數,傳遞到乙個函式中,並要在函式中能引用該二維陣列的元素,我該怎麼做?

第一種方式是直接傳遞二維陣列,但是必須標明第二維的值,因為如果只是傳遞a,編譯器無法分配這樣的陣列,所以要這樣傳int a[3]

第二種方法是傳遞指標陣列方式,即int (*a)[3]

第三種是傳遞指標方法。

具體實施見**:

[cpp]view plain

copy

//二維陣列傳參問題示例

#include

using

namespace

std;  

//方法1:傳遞陣列,注意第二維必須標明

void

fun1(

intarr[3],

intirows)  

cout<}  

cout<}  

//方法二:一重指標

void

fun2(

int(*arr)[3],

intirows)  

cout<}  

cout<}  

//方法三:指標傳遞,不管是幾維陣列都把他看成是指標,

void

fun3(

int*arr,

intirows,

inticols)  

cout<}  

cout<}  

intmain()  

,};  

fun1(a,2);  

coutcout//所以必須強制轉換成指標,如果a是一維陣列則不必進行強制型別轉換

//為什麼一維陣列不用強制轉換而二維陣列必須轉換,此問題還沒解決,期待大牛!

fun3((int

*)a,2,3);  

cout<}  

二維陣列作為引數傳遞問題

int a 2 2 我定義了這樣乙個陣列,我想把這個陣列作為引數,傳遞到乙個函式中,並要在函式中能引用該二維陣列的元素,我該怎麼做?第一種方式是直接傳遞二維陣列,但是必須標明第二維的值,因為如果只是傳遞a,編譯器無法分配這樣的陣列,所以要這樣傳int a 3 第二種方法是傳遞指標陣列方式,即int ...

二維陣列作為引數傳遞

void getoffdata float offdata,int col void main 報錯d qt projects rssi position main.cpp 17 error cannot convert float 16 to float for argument 1 to voi...

二維陣列作為引數傳遞

l二維陣列題的思維收穫 這個演算法跟資料結構沒關係,主要是邏輯思維看圖思考利用的是資料之間的關係 多多舉例具體化嘗試,把複雜的問題具體化,分析那種情況,時間複雜度低。先有思路,再寫 貼近自己的思維。l二維陣列處理的 收穫 在c 中將二維陣列當作引數的時候,必須指明所有維數大小或者省略第一維。但是我們...